LinkedList排序问题,大家来帮忙呀!!!!!!!!!!!!!!!!!
代码如下:
import java.util.LinkedList;
import java.util.Collections;
import java.util.List;
public class myLinked
{
LinkedList llObj;
myLinked()
{
llObj = new LinkedList();
}
void input(Object obj)
{
llObj.addLast(obj);
}
void output()
{
for(int i=0;i <llObj.size();i++)
{
System.out.println( "姓名: "+((Info2)(llObj.get(i))).getName());
System.out.println( "年龄: "+((Info2)(llObj.get(i))).getAge());
System.out.println( "国家: "+((Info2)(llObj.get(i))).getCountry());
System.out.println();
}
}
void sort()
{
Collections.sort(llObj);
this.output();
}
public static void main(String[] args)
{
myLinked my = new myLinked();
my.input(new Info2( "Aaron ",21, "CHINA PR "));
my.input(new Info2( "POPO ",19, "CHINA PR "));
my.input(new Info2( "Milk ",21, "USA "));
my.sort();
}
}
class Info2
{
private String name;
private int age;
private String country;
Info2(String name,int age,String country)
{
this.name = name;
this.age = age;
this.country = country;
}
public String getName()
{
return this.name;
}
public int getAge()
{
return this.age;
}
public String getCountry()
{
return this.country;
}
}
问题是这样的: 我把new 的实例存入LinkedList后,想通过Collections类的sort方法排序后输出,但是系统总会报错.不能进行排序,到底是什么原因呢?? 我想了很久都无法解决, 是不是不能对链表中的实例排序呢?高手快来帮忙呀,还有就是 我输出LinkedList中的内容可以用 for循环输出吗?就象上面的代码一样,还是必须用迭代Iterator呢????? 谢谢大家了, 一鞠躬,二鞠躬!!!!!!!!!!!!!!!!!!!!!!
------解决方案--------------------Info2实现Comparable接口
然后实现compareTo方法.
如果按名字比较就加上
public int compareTo(Object o) {
return name.compareTo(((Info2) o).getName());
}
如果按年龄比较就加上
public int compareTo(Object o) {
return age - ((Info2)o).getAge();
}
或者什么其他的方法比较.
------解决方案--------------------