人的类里有名字和年龄两个属性,怎样在ArrayList<person>里找出...
发布网友
发布时间:2024-05-03 06:42
我来回答
共2个回答
热心网友
时间:2024-08-11 16:42
在设计Person类的时候,实现Comparable 接口,重写compareTo方法,按照年龄进行比较。
利用Arrays.sort()方法对person数组进行排序,然后再将person对象加入ArrayList
如果不想这么做,可以声明一个Comparator对象:
Comparator<Person> comp = new Comparator<Person>(){
public int compare(Person per1,Person per2){
//排序方式
}
}
实现这个后,再利用Collections的sort方法
Collections.sort(list,comp);
然后输出前三即可
热心网友
时间:2024-08-11 16:39
List<person> list;//这个list表示你的人的类的列表
Person tmpPerson = null;//交换临时变量
for(int i=0;i<3;i++)
{
//每次循环把年龄最大的放在列表最后
//该排序方法属于冒泡排序
for(int j=1;j<list.size;j++)
{
if(list.get(j-1).getAge()>list.get(j).getAge())
{
tmpPerson = lit.get(j-1);
list.add(j-1,list.get(j));
list.add(j,tmpPerson);
}
}
}
//这个时候年龄在前三的人就在list的最后三个元素中