我正在尝试读入一个公司向量,并返回true,如果两个公司具有相同的名称,则返回false。我使用CompareTo方法完成了这个过程。在我的方法中,将调用类Company中的“equals”方法。我的“equals”方法必须覆盖类Object中的相应方法。
我想知道是否可以使用Equal方法覆盖CompareTo。如果可以,我如何在main函数中检查它。
该程序的目标是检查向量中的2个公司,如果是,则返回true,否则返回false。下面是我在主函数中卡住的代码。
代码有些混乱,请原谅,我只是尝试了不同的方法。
我想知道是否可以使用Equal方法覆盖CompareTo。如果可以,我如何在main函数中检查它。
该程序的目标是检查向量中的2个公司,如果是,则返回true,否则返回false。下面是我在主函数中卡住的代码。
public class Company implements Comparable <Company> {
/**
* @param args
*/
private String cName;
public String getName()
{
return cName;
}
public int compareTo(Company b)
{
if(this.cName == b.cName)
{
System.out.println(" from compareTo true");
return 1;
}
else
{
System.out.println(" from compareTo false");
return 0;
}
}
public boolean equal(Object o)
{
if (o instanceof Company)
{
Company c = (Company) o;
if(this.cName.equals(c.cName))
{
System.out.println(" from equal true");
return true;
}
}
System.out.println(" from equal false");
return false;
}
public static void main(String[] args) {
// TODO Auto-generated method stub
Vector<String> v = new Vector<String>();
Company obj1 = new Company();
Company obj2 = new Company();
v.add("Rio tinto");
v.add("BHP");
v.add("BHP");
v.add("CBA");
Collections.sort(v);
System.out.println(v);
}
代码有些混乱,请原谅,我只是尝试了不同的方法。
compareTo()
的工作原理。如果两个对象相等,应该返回0
。 - sverre