最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

java對ArrayList中元素進(jìn)行排序的幾種方式總結(jié)

 更新時間:2024年08月19日 08:57:20   作者:Ez4Sterben  
在Java中,ArrayList類提供了多種排序方法,可以根據(jù)不同的需求選擇適合的排序方法,下面這篇文章主要給大家介紹了關(guān)于java對ArrayList中元素進(jìn)行排序的幾種方式,需要的朋友可以參考下

一、使用Collections工具類

1、對基本類型排序

通過Collections.sort()對基本類型排序默認(rèn)是以升序排序

// 1.Collections.sort()默認(rèn)按照升序排序
List<Integer> integerList = new ArrayList<>();
Collections.addAll(integerList,1,2,6,5,5,4,55,4,5,5,4,5,2,4,6,2,45);
Collections.sort(integerList);
System.out.println(integerList);

2、對字符串類型排序

對字符串類型排序默認(rèn)按照首字母a-z排序

// 2.對字符串類型排序
List<String> strings = new ArrayList<>();
Collections.addAll(strings,"d","gsf","trh","fsd","an");
Collections.sort(strings);
System.out.println(strings);

3、對對象排序

如何使用Collections對對象排序呢?

其實(shí)只需要讓我們的數(shù)據(jù)類型實(shí)現(xiàn)Comparable接口即可,下面定義一個實(shí)現(xiàn)Comparable接口的學(xué)生類,并且實(shí)現(xiàn)compareTo方法,讓學(xué)生類只比較年齡。

/**
 * 學(xué)生
 *
 * @author ez4sterben
 * @date 2023/07/18
 */
public class Student implements Comparable<Student> {

    private String id;
    private String name;
    private Integer age;
    private String sex;

    @Override
    public String toString() {
        return "Student{" +
                "age=" + age +
                '}';
    }

    public Student(Integer age) {
        this.age = age;
    }

    public String getId() {
        return id;
    }

    public void setId(String id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public Integer getAge() {
        return age;
    }

    public void setAge(Integer age) {
        this.age = age;
    }

    public String getSex() {
        return sex;
    }

    public void setSex(String sex) {
        this.sex = sex;
    }

    @Override
    public int compareTo(Student o) {
    	// 這種是升序
        return this.getAge() - o.getAge();
        // 這種是降序
        // return o.getAge() - this.getAge();
    }
}

排序方法和正常使用一樣,直接把整個list傳入即可

// 3.對對象排序
        List<Student> students = new ArrayList<>();
        Collections.addAll(students,
                new Student(18),
                new Student(26),
                new Student(20),
                new Student(16),
                new Student(12));
        System.out.println(students);
        Collections.sort(students);
        System.out.println(students);

二、使用stream流

// 2.lambda表達(dá)式
        Stream<Integer> sorted = integerList.stream().sorted();
        System.out.println(Arrays.toString(sorted.toArray()));

三、使用排序算法(以冒泡排序?yàn)槔?/h2>
// 3.直接使用排序算法(以冒泡排序?yàn)槔?
        for(int i = 0; i < integerList.size() - 1; i++){
            for(int j = 0; j < integerList.size() - i - 1; j++){
                if(integerList.get(j) > integerList.get(j + 1)){
                    Integer temp = integerList.get(j);
                    integerList.set(j, integerList.get(j + 1));
                    integerList.set(j + 1, temp);
                }
            }
        }
        System.out.println(integerList);

四、測試類整體代碼

import java.util.*;
import java.util.stream.Stream;

/**
 * 數(shù)組列表排序
 *
 * @author ez4sterben
 * @date 2023/07/19
 */
public class ArrayListSort {
    public static void main(String[] args) {
        List<Integer> integerList = new ArrayList<>();
        Collections.addAll(integerList,1,2,6,5,5,4,55,4,5,5,4,5,2,4,6,2,45);
        // 1.Collections.sort()默認(rèn)按照升序排序
        Collections.sort(integerList);
        System.out.println(integerList);
        // 2.對字符串類型排序
        List<String> strings = new ArrayList<>();
        Collections.addAll(strings,"d","gsf","trh","fsd","an");
        Collections.sort(strings);
        System.out.println(strings);
        // 3.對對象排序
        List<Student> students = new ArrayList<>();
        Collections.addAll(students,
                new Student(18),
                new Student(26),
                new Student(20),
                new Student(16),
                new Student(12));
        System.out.println(students);
        Collections.sort(students);
        System.out.println(students);

        // 2.lambda表達(dá)式
        Stream<Integer> sorted = integerList.stream().sorted();
        System.out.println(Arrays.toString(sorted.toArray()));

        // 3.直接使用排序算法(以冒泡排序?yàn)槔?
        for(int i = 0; i < integerList.size() - 1; i++){
            for(int j = 0; j < integerList.size() - i - 1; j++){
                if(integerList.get(j) > integerList.get(j + 1)){
                    Integer temp = integerList.get(j);
                    integerList.set(j, integerList.get(j + 1));
                    integerList.set(j + 1, temp);
                }
            }
        }
        System.out.println(integerList);

    }
}

總結(jié) 

到此這篇關(guān)于java對ArrayList中元素進(jìn)行排序的幾種方式總結(jié)的文章就介紹到這了,更多相關(guān)java對ArrayList元素排序內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 一文詳解Spring?security框架的使用

    一文詳解Spring?security框架的使用

    Spring?Security是一個基于Spring框架的安全認(rèn)證和授權(quán)框架,它提供了一套全面的安全解決方案,可以在Web應(yīng)用、移動應(yīng)用和Web服務(wù)等不同場景下使用。本文就來詳細(xì)聊聊它的使用吧
    2023-03-03
  • Spring中@Autowired、@Qualifier、@Resource注解的區(qū)別

    Spring中@Autowired、@Qualifier、@Resource注解的區(qū)別

    這篇文章主要介紹了Spring中@Autowired、@Qualifier、@Resource注解的區(qū)別,@Autowired 可以單獨(dú)使用,如果單獨(dú)使用,它將按類型裝配,因此,如果在容器中聲明了多個相同類型的bean,則會出現(xiàn)問題,因?yàn)?nbsp;@Autowired 不知道要使用哪個bean來注入,需要的朋友可以參考下
    2023-11-11
  • Java微信公眾號推送模版消息的步驟示例詳解

    Java微信公眾號推送模版消息的步驟示例詳解

    模板消息是一種向用戶發(fā)送通知的服務(wù),廣泛用于訂單狀態(tài)更新、服務(wù)提醒等場景,下面,我將詳細(xì)介紹如何使用Java結(jié)合微信官方提供的API來實(shí)現(xiàn)模板消息的推送,感興趣的朋友跟隨小編一起看看吧
    2024-08-08
  • Java21增強(qiáng)對Emoji表情符號處理示例詳解

    Java21增強(qiáng)對Emoji表情符號處理示例詳解

    這篇文章主要為大家介紹了Java21增強(qiáng)對Emoji表情符號處理示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-11-11
  • 解決nacos修改配置信息后需要重啟服務(wù)才能生效的問題

    解決nacos修改配置信息后需要重啟服務(wù)才能生效的問題

    當(dāng)配置信息發(fā)生變動時,傳統(tǒng)修改配置信息后,需要重新重啟服務(wù)器才可以生效,大量應(yīng)用配置修改時,需要一個個修改配置,無法統(tǒng)一修改,且沒有辦法回溯配置版本,所以本文給大家介紹了如何解決這些問題的方法,需要的朋友可以參考下
    2023-10-10
  • SpringBoot+MyBatis簡單數(shù)據(jù)訪問應(yīng)用的實(shí)例代碼

    SpringBoot+MyBatis簡單數(shù)據(jù)訪問應(yīng)用的實(shí)例代碼

    這篇文章主要介紹了SpringBoot+MyBatis簡單數(shù)據(jù)訪問應(yīng)用的實(shí)例代碼,需要的朋友可以參考下
    2017-05-05
  • Sprigmvc項目轉(zhuǎn)為springboot的方法

    Sprigmvc項目轉(zhuǎn)為springboot的方法

    本篇文章主要介紹了Sprigmvc項目轉(zhuǎn)為springboot的方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-02-02
  • java實(shí)現(xiàn)字符串like和not?like的使用示例

    java實(shí)現(xiàn)字符串like和not?like的使用示例

    在Java中,我們經(jīng)常需要對字符串進(jìn)行模式匹配操作,字符串的模式匹配通常使用like和not?like這兩個運(yùn)算符進(jìn)行,本文就來介紹一下如何實(shí)現(xiàn),感興趣的可以了解一下
    2023-09-09
  • Spring?Cloud?Gateway編碼實(shí)現(xiàn)任意地址跳轉(zhuǎn)的示例

    Spring?Cloud?Gateway編碼實(shí)現(xiàn)任意地址跳轉(zhuǎn)的示例

    本文主要介紹了Spring?Cloud?Gateway編碼實(shí)現(xiàn)任意地址跳轉(zhuǎn)的示例,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-12-12
  • idea導(dǎo)入springboot項目沒有maven的解決

    idea導(dǎo)入springboot項目沒有maven的解決

    這篇文章主要介紹了idea導(dǎo)入springboot項目沒有maven的解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-04-04

最新評論

泽州县| 肥城市| 正阳县| 云南省| 沾化县| 航空| 昌图县| 齐河县| 蓬安县| 潼关县| 江川县| 台前县| 卓资县| 措美县| 即墨市| 东海县| 定西市| 元谋县| 都江堰市| 合川市| 华容县| 枣庄市| 肥东县| 天祝| 汨罗市| 沙田区| 繁峙县| 许昌县| 拉萨市| 威宁| 烟台市| 紫金县| 洪雅县| 水富县| 庄浪县| 吉水县| 奉节县| 马山县| 宁强县| 旬邑县| 安宁市|