이 프로그램에서는 compartor
을 식별하지 않으므로 compareTo
을 사용하고 싶지 않습니다.내 프로그램에서 비교기를 사용할 수 없습니다.
class TestTreeSet
{
public static void main(String args[])
{
BuildObject build = new BuildObject();
TreeSet treeSet = new TreeSet(new Compared());
treeSet = build.sendAsTreeSet();
Iterator itr = treeSet.iterator();
while(itr.hasNext())
{
Obj object = (Obj) itr.next();
System.out.println(object.getName() + "\n " + object.getAge() + "\n "
+ object.getSalary());
}
}
}
이 비교기
class Compared implements Comparator
{
public int compare(Object a , Object b)
{
Obj one = (Obj) a;
Obj two = (Obj) b;
double salaryOne = one.getSalary();
double salaryTwo = two.getSalary();
int ageOne = one.getAge();
int ageTwo = two.getAge();
if(ageOne == ageTwo)
{
if(salaryOne > salaryTwo)
{
return -1;
}
else if(salaryOne < salaryTwo)
{
return 1;
}
else return 0;
}
else if(ageOne > ageTwo)
return -1;
else return 1;
}
}
문제가 무엇입니까? 그것은 java.lang.comparable
예외 캐스트 할 수없는 보여줍니다
1.
확인 작업 didnt가 있으면 알려 주시기 바랍니다,'2. 당신은 원시'TreeSet'있는 이유는 무엇입니까? – sanbhat
아직 generics를 배우지 않았기 때문에 원시 트리 집합을 사용하고 있습니다 –
그러면 해당 컬렉션을 사용하여'새 TreeSet'을 만들어야합니다 ..'build.sendAsTreeSet()'의 반환 유형은 무엇입니까? – sanbhat