摘要:是集合工具類,用來對(duì)集合進(jìn)行操作。部分方法如下,將集合中元素按照指定規(guī)則排序。
package com.itheima.demo05.Collections;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
/*
- java.utils.Collections是集合工具類,用來對(duì)集合進(jìn)行操作。部分方法如下: public staticvoid sort(List list,Comparator super T> ):將集合中元素按照指定規(guī)則排序。 Comparator和Comparable的區(qū)別 Comparable:自己(this)和別人(參數(shù))比較,自己需要實(shí)現(xiàn)Comparable接口,重寫比較的規(guī)則compareTo方法 Comparator:相當(dāng)于找一個(gè)第三方的裁判,比較兩個(gè) Comparator的排序規(guī)則: o1-o2:升序
*/
public class Demo03Sort {
public static void main(String[] args) { ArrayListlist01 = new ArrayList<>(); list01.add(1); list01.add(3); list01.add(2); System.out.println(list01);//[1, 3, 2] Collections.sort(list01, new Comparator () { //重寫比較的規(guī)則 @Override public int compare(Integer o1, Integer o2) { //return o1-o2;//升序 return o2-o1;//降序 } }); System.out.println(list01); ArrayList list02 = new ArrayList<>(); list02.add(new Student("a迪麗熱巴",18)); list02.add(new Student("古力娜扎",20)); list02.add(new Student("楊冪",17)); list02.add(new Student("b楊冪",18)); System.out.println(list02); /*Collections.sort(list02, new Comparator () { @Override public int compare(Student o1, Student o2) { //按照年齡升序排序 return o1.getAge()-o2.getAge(); } });*/ //擴(kuò)展:了解 Collections.sort(list02, new Comparator () { @Override public int compare(Student o1, Student o2) { //按照年齡升序排序 int result = o1.getAge()-o2.getAge(); //如果兩個(gè)人年齡相同,再使用姓名的第一個(gè)字比較 if(result==0){ result = o1.getName().charAt(0)-o2.getName().charAt(0); } return result; } }); System.out.println(list02); }
}
package com.itheima.demo05.Collections;
public class Student {
private String name; private int age; public Student() { } public Student(String name, int age) { this.name = name; this.age = age; } @Override public String toString() { return "Student{" + "name="" + name + """ + ", age=" + age + "}"; } public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; }
}
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/75163.html
摘要:容器相關(guān)的操作及其源碼分析說明本文是基于分析的。有哪些抽取出來的工具類。即對(duì)于反轉(zhuǎn)方式如下替換值查找在出現(xiàn)的最小位置。查找在出現(xiàn)的最大位置。即返回的和原在元素上保持一致,但不可修改。 容器相關(guān)的操作及其源碼分析 說明 1、本文是基于JDK 7 分析的。JDK 8 待我工作了得好好研究下。Lambda、Stream。 2、因?yàn)閭€(gè)人能力有限,只能以模仿的形式+自己的理解寫筆記。如有不對(duì)的...
摘要:是集合工具類,用來對(duì)集合進(jìn)行操作。部分方法如下將集合中元素按照默認(rèn)規(guī)則排序。注意使用前提被排序的集合里邊存儲(chǔ)的元素必須實(shí)現(xiàn)重寫接口中的方法定義排序的規(guī)則接口的排序規(guī)則自己參數(shù)升序?qū)⒓现性匕凑漳J(rèn)規(guī)則排序。 package com.itheima.demo05.Collections; import java.util.ArrayList;import java.util.Colle...
摘要:排序的算法是歸并排序。舉個(gè)例子,的算法可以不是使用歸并排序,但是該算法一定要是穩(wěn)定的。這個(gè)類是的一部分。官方這個(gè)類只包含操作或返回集合的靜態(tài)方法。具體來說是,第一步,先把集合轉(zhuǎn)換為數(shù)組,第二步,調(diào)用。和沒有什么區(qū)別,只是傳參有點(diǎn)不同。 Arrays 1.作用看類的名字,就知道是對(duì)數(shù)組(數(shù)據(jù)類型[])進(jìn)行各種操作。例如,排序、查找、復(fù)制等。 排序的算法是歸并排序。查找的算法是二分查找。復(fù)...
摘要:另外,還可以調(diào)用和等很便利的方法,以返回表示字段,方法,以及構(gòu)造器的對(duì)象的數(shù)組。運(yùn)行結(jié)果無參構(gòu)造器有參構(gòu)造器和實(shí)現(xiàn)原理和區(qū)別和區(qū)別是一個(gè)集合接口。 對(duì)象的四種引用 強(qiáng)引用只要引用存在,垃圾回收器永遠(yuǎn)不會(huì)回收 showImg(https://segmentfault.com/img/bVbsYsz?w=652&h=52); 可直接通過obj取得對(duì)應(yīng)的對(duì)象 如 obj.equels(new...
摘要:提供了一個(gè)操作和等集合的工具類,該工具類提供了大量方法對(duì)集合進(jìn)行排序查詢和修改等操作,還提供了將集合對(duì)象置為不可變對(duì)集合對(duì)象實(shí)現(xiàn)同步控制等方法排序操作反轉(zhuǎn)指定集合中元素的順序?qū)显剡M(jìn)行隨機(jī)排序方法模擬了洗牌動(dòng)作根據(jù)元素的自然順序?qū)χ付? Java提供了一個(gè)操作Set、List和Map等集合的工具類:Collections,該工具類提供了大量方法對(duì)集合進(jìn)行排序、查詢和修改等操作,還提...
閱讀 2566·2023-04-26 01:44
閱讀 2577·2021-09-10 10:50
閱讀 1420·2019-08-30 15:56
閱讀 2286·2019-08-30 15:44
閱讀 525·2019-08-29 11:14
閱讀 3429·2019-08-26 11:56
閱讀 3025·2019-08-26 11:52
閱讀 921·2019-08-26 10:27