示例:實體類實現Comparable接口,重寫compareTo方法ide
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的使用this
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進行去重spa
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);