java集合框架:Collections集合工具類
阿新 • • 發佈:2020-12-30
Collections集合工具類
-
java.utils.Collections
是集合工具類,用來對集合進行操作 -
public static <T> boolean addAll(Collection<T> c,T...elements)
:往集合中新增一些元素 -
public static void shuffle(List<?> list)
:打亂順序 -
public static <T> void sort(List<T> list)
:將集合中元素按照預設規則排序- 被排序的集合裡邊儲存的元素,必須實現Comparable介面,重寫介面中的
compareTo()方法
- 規則: this-引數(升序) 引數-this(降序)
- 被排序的集合裡邊儲存的元素,必須實現Comparable介面,重寫介面中的
-
public static <T> void sort( List<T> list,Comparator<? super T>)
:將集合中的元素按照指定規則排序。Comparable 和 Comparator的區別:
- Comparable:自己(this)和別人(引數)的比較,自己需要實現Comparable介面,重寫比較的規則
compareTo()方法
方法; - Comparator:找一個第三方裁判,比較兩個。
- Comparable:自己(this)和別人(引數)的比較,自己需要實現Comparable介面,重寫比較的規則
public class Person implements Comparable<Person> { private String name; private int age; @Override public int compareTo(Person o) { //return 0; 認為元素都是相同的 //自定義規則:按照年齡排序 return this.getAge()-o.getAge();//升序 //return o.getAge()-this.getAge();//降序 //此處可以自定義規則 } } public class Demo01 { public static void main(String[] args) { ArrayList<String> list=new ArrayList<>(); Collections.addAll(list,"a","c","e","d"); System.out.println(list);//[a, b, c, d] Collections.shuffle(list);//打亂順序 System.out.println(list);//[b, d, a, c] 每次都不一樣 Collections.sort(list);//引數只能傳List集合不能Set集合 System.out.println(list);//[a, b, c, d] ArrayList<Person> list1=new ArrayList<>(); Collections.addAll(list1,new Person("zhangsan",19),new Person("lisi",18),new Person("wanger",21)); System.out.println(list1); //[Person{name='zhangsan', age=19}, Person{name='lisi', age=18}, Person{name='wanger', age=21}] Collections.sort(list1); System.out.println(list1); //[Person{name='lisi', age=18}, Person{name='zhangsan', age=19}, Person{name='wanger', age=21}] Collections.sort(list1, new Comparator<Person>() { //重寫比較規則 @Override public int compare(Person o1, Person o2) { return o2.getAge()-o1.getAge();//降序 //此處可以自定義規則 } }); System.out.println(list1);//[Person{name='wanger', age=21}, Person{name='zhangsan', age=19}, Person{name='lisi', age=18}] } }