Java集合框架Collections原理及用法實(shí)例
Collections工具類(lèi)
Java里關(guān)于聚合的工具類(lèi),包含有各種有關(guān)集合操作的靜態(tài)多態(tài)方法,不能實(shí)例化(把構(gòu)造函數(shù)私有化)
public class Collections { // Suppresses default constructor, ensuring non-instantiability. private Collections() { } }
和Collection的區(qū)別
- Collection是接口,提供了對(duì)集合對(duì)象進(jìn)行基本操作的通用接口方法,List、Set等多種具體的實(shí)現(xiàn)類(lèi)
- Collection是工具類(lèi),專門(mén)從操作Collection接口實(shí)現(xiàn)類(lèi)里面的元素
常見(jiàn)方法
排序
Sort(List list)
按自然排序的升序排序
public static void main(String[] args) { List<String> list = new ArrayList<>(); list.add("aaaa"); list.add("zzz"); list.add("gggg"); System.out.println(list); Collections.sort(list); System.out.println(list); }
自定義排序規(guī)則
Sort(List list,Comparator c),由Comparator控制排序邏輯
public static void main(String[] args) { List<String> list = new ArrayList<>(); list.add("aaaa"); list.add("zzz"); list.add("gggg"); System.out.println(list); //默認(rèn)升序 Collections.sort(list, Comparator.naturalOrder()); System.out.println(list); //降序 Collections.sort(list, Comparator.reverseOrder()); System.out.println(list); }
隨機(jī)排序
shuffle(List list)
public static void main(String[] args) { List<String> list = new ArrayList<>(); list.add("1"); list.add("2"); list.add("3"); list.add("4"); list.add("5"); list.add("6"); list.add("7"); list.add("8"); list.add("9"); list.add("10"); list.add("J"); list.add("Q"); list.add("K"); System.out.println(list); Collections.shuffle(list); System.out.println(list); }
獲取最值元素
max(Collection coll)#
默認(rèn)比較,不適合對(duì)象比較
max(Collection coll,Comparator comparator)#
Student.java
package com.cyb.test; class Student { public Student(String name, int age) { this.name = name; this.age = age; } private int age; private String name; public void setAge(int age) { this.age = age; } public int getAge() { return age; } public void setName(String name) { this.name = name; } public String getName() { return name; } @Override public String toString() { return "Student{" + "age=" + age + ", name='" + name + '\'' + '}'; } }
Test03.java
package com.cyb.test; import java.util.ArrayList; import java.util.Collections; import java.util.Comparator; import java.util.List; public class test03 { public static void main(String[] args) { List<Student> list = new ArrayList<>(); list.add(new Student("jack", 26)); list.add(new Student("tom", 29)); list.add(new Student("mary", 32)); list.add(new Student("tony", 19)); list.add(new Student("smith", 41)); System.out.println(list); Student maxAgeStudent = Collections.max(list, new Comparator<Student>() { @Override public int compare(Student o1, Student o2) { return o1.getAge() - o2.getAge(); } }); System.out.println("maxAgeStudent = "+maxAgeStudent.toString()); Student mixAgeStudent = Collections.min(list, new Comparator<Student>() { @Override public int compare(Student o1, Student o2) { return o1.getAge() - o2.getAge(); } }); System.out.println("mixAgeStudent = "+mixAgeStudent.toString()); } }
創(chuàng)建不可變集合unmodifiablleXXX()
List<String> list = new ArrayList<>(); list.add("SpringBoot課程"); list.add("架構(gòu)課程"); list.add("微服務(wù)SpringCloud課程"); //設(shè)置為只讀List集合 list = Collections.unmodifiableList(list); System.out.println(list); Set<String> set = new HashSet<>(); set.add("Mysql教程"); set.add("Linux服務(wù)器器教程"); set.add("Git教程"); //設(shè)置為只讀Set集合 set = Collections.unmodifiableSet(set); System.out.println(set); Map<String, String> map = new HashMap<>(); map.put("key1", "課程1"); map.put("key2", "課程2"); //設(shè)置為只讀Map集合 map = Collections.unmodifiableMap(map); System.out.println(map);
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- Java后臺(tái)通過(guò)Collections獲取list集合中最大數(shù),最小數(shù)代碼
- Java Collections集合繼承結(jié)構(gòu)圖_動(dòng)力節(jié)點(diǎn)Java學(xué)院整理
- JAVA對(duì)list集合進(jìn)行排序Collections.sort()
- JavaSE的三大接口:Comparator,Comparable和Cloneable詳解
- Java Comparable及Comparator接口區(qū)別詳解
- Java Comparable和Comparator對(duì)比詳解
- Java 比較接口comparable與comparator區(qū)別解析
- Java Comparable 和 Comparator 的詳解及區(qū)別
- 淺析Java中comparator接口與Comparable接口的區(qū)別
- 對(duì)比Java中的Comparable排序接口和Comparator比較器接口
- java?集合工具類(lèi)Collections及Comparable和Comparator排序詳解
相關(guān)文章
java生成excel并導(dǎo)出到對(duì)應(yīng)位置的方式
這篇文章主要介紹了java生成excel并導(dǎo)出到對(duì)應(yīng)位置的方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-01-01Java實(shí)現(xiàn)視頻初步壓縮和解壓的代碼示例
從攝像頭讀取每一幀的圖片,用一些簡(jiǎn)單的方法將多張圖片信息壓縮到一份文件中(自定義的視頻文件),自定義解碼器讀取視頻文件,并將每幀圖片展示成視頻,本文主要介紹了Java實(shí)現(xiàn)視頻初步壓縮和解壓,需要的朋友可以參考下2023-10-10springMvc請(qǐng)求的跳轉(zhuǎn)和傳值的方法
本篇文章主要介紹了springMvc請(qǐng)求的跳轉(zhuǎn)和傳值的方法,這里整理了幾種跳轉(zhuǎn)方式,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下。2017-02-02Springboot訪問(wèn)html頁(yè)面的教程詳解
這篇文章主要介紹了Springboot訪問(wèn)html頁(yè)面的教程,本文圖文并茂給大家介紹的非常詳細(xì),需要的朋友可以參考下2018-03-03Java+opencv3.2.0實(shí)現(xiàn)重映射
這篇文章主要為大家詳細(xì)介紹了Java+opencv3.2.0實(shí)現(xiàn)重映射的相關(guān)資料,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-02-02