示例:实体类实现Comparable接口,重写compareTo方法
public class Person implements Comparable<Person>{ private String personId; private String rate; ...... @Override public int compareTo(Person o) { if(o.getRate().equals(this.getRate())){ return 0; } if(Double.parseDouble(this.getRate()) < Double.parseDouble(o.getRate())){ return -1; } if(Double.parseDouble(this.getRate()) > Double.parseDouble(o.getRate())){ return 1; } return 0; } }
Collections的使用
public static void main(String[] args) { List<Person> ll = new ArrayList<Person>(); ll.add(new Person("1","0.1")); ll.add(new Person("4","0.4")); ll.add(new Person("2","0.2")); ll.add(new Person("3","0.3")); //遍历输出结果 1 4 2 3 //默认排序(从小到大) Collections.sort(ll);//遍历输出结果 1 2 3 4
//从大到小,先默认排序再反转 Collections.sort(ll); Collections.reverse(ll);//遍历输出结果 4 3 2 1
//随机排序,所有置换发生的可能性都是大致相等的 Collections.shuffle(ll);//遍历输出结果 1 3 4 2 }
另:加 利用set对list进行去重
Set set = new HashSet(); List<Person> newList = new ArrayList<Person>(); for (Person p:ll) { if(set.add(p)){ newList.add(p); } } System.out.println( "去重后的集合: " + newList);