Java集合框架Collections原理及用法實(shí)例
Collections工具類
Java里關(guān)于聚合的工具類,包含有各種有關(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)類 Collection是工具類,專門從操作Collection接口實(shí)現(xià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);
以上就是本文的全部內(nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持好吧啦網(wǎng)。
相關(guān)文章:
1. PHP中為什么使用file_get_contents("php://input")接收微信通知2. ASP基礎(chǔ)入門第二篇(ASP基礎(chǔ)知識(shí))3. ASP.NET MVC實(shí)現(xiàn)登錄后跳轉(zhuǎn)到原界面4. 不使用XMLHttpRequest對(duì)象實(shí)現(xiàn)Ajax效果的方法小結(jié)5. ThinkPHP6使用JWT+中間件實(shí)現(xiàn)Token驗(yàn)證實(shí)例詳解6. 怎樣打開XML文件?xml文件如何打開?7. ASP.NET MVC限制同一個(gè)IP地址單位時(shí)間間隔內(nèi)的請(qǐng)求次數(shù)8. JSP出現(xiàn)中文亂碼問題解決方法詳解9. vue的路由動(dòng)畫切換頁面無法讀取meta值的bug記錄10. jsp實(shí)現(xiàn)簡(jiǎn)單用戶7天內(nèi)免登錄
