当前位置:编程学习 > JAVA >>

如何把一个list集合中的对象,按对象的一个属性排序

面试题,不会做啊,求大神指点 --------------------编程问答--------------------
引用 楼主 u010052077 的回复:
面试题,不会做啊,求大神指点


Collections.sort(list, new  Comparator<T>() {

@Override
public int compare(T o1, T o2) {
// TODO Auto-generated method stub
return 0;
}
}); --------------------编程问答--------------------
引用 1 楼 zhuweisyyc 的回复:
Quote: 引用 楼主 u010052077 的回复:

面试题,不会做啊,求大神指点


Collections.sort(list, new  Comparator<T>() {

@Override
public int compare(T o1, T o2) {
// TODO Auto-generated method stub
return 0;
}
});

还是不懂啊 ,大哥写个注释吧 --------------------编程问答--------------------
引用 2 楼 u010052077 的回复:
Quote: 引用 1 楼 zhuweisyyc 的回复:

Quote: 引用 楼主 u010052077 的回复:

面试题,不会做啊,求大神指点


Collections.sort(list, new  Comparator<T>() {

@Override
public int compare(T o1, T o2) {
// TODO Auto-generated method stub
return 0;
}
});

还是不懂啊 ,大哥写个注释吧


list 是你要排序的。
Collections 是集合的公共类,提供各种工具,其中提供了排序方法。
Collections.sort(),方法两个参数,1,要排序的集合,2.排序方式
下面是匿名内部类,实现了排序借口,你也可以写外面。
Comparator c=new  Comparator<T>() {

@Override
public int compare(T o1, T o2) {
// TODO Auto-generated method stub
return 0;
}
} --------------------编程问答-------------------- 对象没贴出来
	public void sortTest1(){
List<SortBean> list = new ArrayList<SortBean>();
SortBean bean = null;
Random r = new Random();
for(int i=0;i<6;i++){
bean = new SortBean();
bean.setId(i);
bean.setName("测试"+i);
bean.setAge(r.nextInt(100));
list.add(bean);
}
// System.out.println(JSONArray.fromObject(list));
ComparatorChain chain = new ComparatorChain();
chain.addComparator(new BeanComparator("age"),true);//true,fase正序反序
// chain.addComparator(new BeanComparator("name"));
// chain.addComparator(new BeanComparator("age"));
Collections.sort(list,chain);
System.out.println(JSONArray.fromObject(list));
}
--------------------编程问答-------------------- import java.util.Set ;
import java.util.TreeSet ;
class Person implements Comparable<Person>{
private String name ;
private int age ;
public Person(String name,int age){
this.name = name ;
this.age = age ;
}
public String toString(){
return "姓名:" + this.name + ";年龄:" + this.age ;
}
public int compareTo(Person per){
if(this.age>per.age){
return 1 ;
}else if(this.age<per.age){
return -1 ;
}else{
return this.name.compareTo(per.name) ; // 调用String中的compareTo()方法
}
}
};
public class TreeSetDemo04{
public static void main(String args[]){
Set<Person> allSet = new TreeSet<Person>() ;
allSet.add(new Person("张三",30)) ;
allSet.add(new Person("李四",31)) ;
allSet.add(new Person("王五",32)) ;
allSet.add(new Person("王五",32)) ;//重复元素,不能加入
allSet.add(new Person("王五",32)) ;//重复元素,不能加入
allSet.add(new Person("赵六",33)) ;
allSet.add(new Person("孙七",33)) ;
System.out.println(allSet) ;
}
};
补充:Java ,  Java SE
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,