【发布时间】:2015-02-25 07:04:49
【问题描述】:
可比接口中 == 运算符的工作
Employee.java
class Employee implements Comparable
{
int id; String name; int age;
Employee(int id,String name,int age)
{
this.id=id;
this.name=name;
this.age=age;
}
public int compareTo(Object obj)
{
Employee emp = (Employee)obj;
if(age==emp.age)
{
return 0;
}
//else if(age>emp.age)
//return 1;
else
return -1;
}
}
display_logic.java
import java.util.*;
class display_logic
{
public static void main(String args[])
{
ArrayList al = new ArrayList();
al.add(new Employee(1,"Supreeth",21));
al.add(new Employee(2,"Vijay",31));
al.add(new Employee(3,"Ganesh",21));
al.add(new Employee(4,"Aisu",31));
al.add(new Employee(5,"Aizzz",41));
Collections.sort(al);
Iterator it = al.iterator();
while(it.hasNext())
{
Employee emp = (Employee)it.next();
System.out.println("Employee name" +emp.name+ "," +emp.age);
}
}
}
请告诉我 == 运算符是如何工作的
- 我无法获得输出中正在实现的逻辑
输出
员工姓名 Aizzz,41 员工姓名爱苏,31 员工姓名 Ganesh,21 员工姓名 Vijay,31 员工姓名 Supreeth,21提前致谢
【问题讨论】:
-
在排序时如果 compareTo() 将 return 1 然后下一个元素将添加到前一个元素之后,如果它 返回 -1 元素将添加在前一个元素之前,如果为 0,则取决于之前或之后。 == 运算符只是比较原始类型的值并返回布尔结果。
-
你是说所有员工都比其他员工少,除了他们自己。即Aizzz
标签: java collections comparable