创建一个List集合存储内容,对于一个List相当于一个变长数组,是有序可索引的,如何进行元素的排序呢,存储的是对象又怎么进行排序呢。
- 使用Collections的API——sort
- 对集合List的值元素进行排序:
//将集合中元素按默认规则排序 List<Integer> list=new ArrayList<>(); Collections.addAll(list,11,16,14,16,18,35); Collections.sort(list); System.out.println(list); //将集合中元素按自定义规则排序 Collections.sort(list,new Comparator<Integer>(){ @Override public int compare(Integer o1, Integer o2) { return o1-o2; } } ); System.out.println(list); Collections.sort(list,(o1, o2) -> o2-o1); System.out.println(list);
- 对集合List的对象进行排序:
- 对类实现Comparable<?>接口,就可以直接使用Collections.sort()方法了。
class a implements Comparable<a>{ @Override public int compareTo(a o) { return this.weight-o.weight;//参考排序内容 } }
- sort方法的比较器对象Comparator;
同1中自定义规则排序。
Note: TreeSet对比较的返回值为0会删除相同的,而List不会(List可重复)。
end.如何打乱集合顺序呢?
Collections.shuffle()