国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Java中List對(duì)象集合按照對(duì)象中某字段進(jìn)行排序

這篇具有很好參考價(jià)值的文章主要介紹了Java中List對(duì)象集合按照對(duì)象中某字段進(jìn)行排序。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

在Java中,可以使用List集合對(duì)象的sort(Comparator<? super E> c)方法,按照對(duì)象中某字段對(duì)List集合進(jìn)行排序

default void sort(Comparator<? super E> c) {
    Object[] a = this.toArray();
    Arrays.sort(a, (Comparator) c);
    ListIterator<E> i = this.listIterator();
    for (Object e : a) {
        i.next();
        i.set((E) e);
    }
}

栗子:


import java.util.*;
import java.util.stream.Collectors;

public class StreamTest {
    public static void main(String[] args) {

        List<Person2> personList = new ArrayList<Person2>();
        personList.add(new Person2("Tom", 8900, 18,"male", "A"));
        personList.add(new Person2("Jack", 7000, 19,"male", "A"));
        personList.add(new Person2("Lily", 7800, 20,"female", "D"));
        personList.add(new Person2("Anni", 8200, 18,"female", "B"));
        personList.add(new Person2("Owen", 9500, 23,"male", "D"));
        personList.add(new Person2("Alisa", 7900, 28,"female", "C"));
  
        //根據(jù)List集合對(duì)象的sort方法(語(yǔ)句后x.get與y.get調(diào)換位置即為倒序)
        personList.sort((x,y) -> Integer.compare(x.getSalary(),y.getSalary()));//int類型正序
        personList.forEach(System.out::println);
        System.out.println("================================");

        personList.sort((a, b) -> a.getSalary() - b.getSalary());//int類型正序
        personList.forEach(System.out::println);
        System.out.println("================================");

        personList.sort(Comparator.comparing(Person2::getSalary));//int類型正序排序
        personList.forEach(System.out::println);
        System.out.println("================================");

        personList.sort((a,b) -> a.getLevel().compareTo(b.getLevel()));//其他類型正序
        personList.forEach(System.out::println);
        System.out.println("================================");

        //stream流的sorted方法正序排序(倒序:Comparator.comparing(Person2::getSalary).reversed())
        personList = personList.stream().sorted(Comparator.comparing(Person2::getSalary)).collect(Collectors.toList());
        personList.forEach(System.out::println);
        System.out.println("================================");
    }
}


class Person2 {
    private String name;  // 姓名
    private int salary; // 薪資
    private int age; // 年齡
    private String sex; //性別
    private String level;  // 級(jí)別

    // 構(gòu)造方法
    public Person2(String name, int salary, int age, String sex, String level) {
        this.name = name;
        this.salary = salary;
        this.age = age;
        this.sex = sex;
        this.level = level;
    }
    // 省略了get和set,請(qǐng)自行添加

    public String getName() {
        return name;
    }

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

    public int getSalary() {
        return salary;
    }

    public void setSalary(int salary) {
        this.salary = salary;
    }

    public int getAge() {
        return age;
    }

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

    public String getSex() {
        return sex;
    }

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

    public String getLevel() {
        return level;
    }

    public void setLevel(String level) {
        this.level = level;
    }

    @Override
    public String toString() {
        return "Person2{" +
                "name=" + name +
                ", salary='" + salary + '\'' +
                ", age='" + age + '\'' +
                ", sex='" + sex + '\'' +
                ", level=" + level +
                '}';
    }
}

打印輸出結(jié)果如下:文章來源地址http://www.zghlxwxcb.cn/news/detail-527098.html

Person2{name=Jack, salary='7000', age='19', sex='male', level=A}
Person2{name=Lily, salary='7800', age='20', sex='female', level=D}
Person2{name=Alisa, salary='7900', age='28', sex='female', level=C}
Person2{name=Anni, salary='8200', age='18', sex='female', level=B}
Person2{name=Tom, salary='8900', age='18', sex='male', level=A}
Person2{name=Owen, salary='9500', age='23', sex='male', level=D}
================================
Person2{name=Jack, salary='7000', age='19', sex='male', level=A}
Person2{name=Lily, salary='7800', age='20', sex='female', level=D}
Person2{name=Alisa, salary='7900', age='28', sex='female', level=C}
Person2{name=Anni, salary='8200', age='18', sex='female', level=B}
Person2{name=Tom, salary='8900', age='18', sex='male', level=A}
Person2{name=Owen, salary='9500', age='23', sex='male', level=D}
================================
Person2{name=Jack, salary='7000', age='19', sex='male', level=A}
Person2{name=Lily, salary='7800', age='20', sex='female', level=D}
Person2{name=Alisa, salary='7900', age='28', sex='female', level=C}
Person2{name=Anni, salary='8200', age='18', sex='female', level=B}
Person2{name=Tom, salary='8900', age='18', sex='male', level=A}
Person2{name=Owen, salary='9500', age='23', sex='male', level=D}
================================
Person2{name=Jack, salary='7000', age='19', sex='male', level=A}
Person2{name=Tom, salary='8900', age='18', sex='male', level=A}
Person2{name=Anni, salary='8200', age='18', sex='female', level=B}
Person2{name=Alisa, salary='7900', age='28', sex='female', level=C}
Person2{name=Lily, salary='7800', age='20', sex='female', level=D}
Person2{name=Owen, salary='9500', age='23', sex='male', level=D}
================================
Person2{name=Jack, salary='7000', age='19', sex='male', level=A}
Person2{name=Lily, salary='7800', age='20', sex='female', level=D}
Person2{name=Alisa, salary='7900', age='28', sex='female', level=C}
Person2{name=Anni, salary='8200', age='18', sex='female', level=B}
Person2{name=Tom, salary='8900', age='18', sex='male', level=A}
Person2{name=Owen, salary='9500', age='23', sex='male', level=D}
================================

到了這里,關(guān)于Java中List對(duì)象集合按照對(duì)象中某字段進(jìn)行排序的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • Java當(dāng)中List集合根據(jù)對(duì)象某個(gè)屬性進(jìn)行去重

    Java當(dāng)中List集合根據(jù)對(duì)象某個(gè)屬性進(jìn)行去重

    關(guān)于以下方法,直接可以在自己項(xiàng)目創(chuàng)建一個(gè)類,然后進(jìn)行測(cè)試使用,去重方式有很多種,文本末尾也提供了每個(gè)方法的運(yùn)行結(jié)果,供大家參考使用! 文章大量使用到了Java8當(dāng)中的Lambda表達(dá)式,以及stream流相關(guān)基礎(chǔ)知識(shí)。如果您用的不熟,沒關(guān)系,可以直接復(fù)制下面的方案然

    2024年02月16日
    瀏覽(95)
  • Java List按照某字段去重

    Java List按照某字段去重

    Java8流的新類java.util.stream.Collectors實(shí)現(xiàn)了java.util.stream.Collector接口,同時(shí)又提供了大量的方法對(duì)流(stream)的元素執(zhí)行各種統(tǒng)計(jì)操作。 執(zhí)行結(jié)果如下 但是這種方式必須要 每個(gè)鍵值對(duì)都一樣,才會(huì)被判定成重復(fù)的 ,否則不會(huì)被判為重復(fù),如下。 執(zhí)行結(jié)果如下 雖然name的值一樣,但

    2024年02月06日
    瀏覽(133)
  • 使用java8 新特性stream流對(duì)List<Map<String, Object>>集合進(jìn)行遍歷、過濾、查詢、去重、排序、分組

    對(duì)于一個(gè)ListMapString, Object類型的數(shù)據(jù),可以使用Java 8的新特性stream流來進(jìn)行遍歷、過濾、查詢、去重、排序、分組等操作。 遍歷: 過濾: 查詢: 去重: 排序: 分組:

    2024年02月10日
    瀏覽(106)
  • JS數(shù)組對(duì)象——根據(jù)日期進(jìn)行排序Date.parse(),按照時(shí)間進(jìn)行升序或降序排序localeCompare()

    JS數(shù)組對(duì)象——根據(jù)日期進(jìn)行排序Date.parse(),按照時(shí)間進(jìn)行升序或降序排序localeCompare()

    排序在項(xiàng)目中非常實(shí)用,出現(xiàn)頻率極高,尤其是 后臺(tái)管理系統(tǒng) ,需要我們對(duì)大量的數(shù)據(jù)進(jìn)行 展示、處理、操作 。一般都是 從后臺(tái)獲取到數(shù)組對(duì)象 ,然后 根據(jù)其中的一個(gè)屬性對(duì)數(shù)據(jù)進(jìn)行升序或者降序 的處理。從本期文章開始,將分別介紹常用的三種排序—— 根據(jù)日期排序

    2024年02月01日
    瀏覽(22)
  • Java list集合中根據(jù)其中兩個(gè)字段去重

    可以使用Java 8的Stream API和Collectors.toSet()方法來實(shí)現(xiàn)根據(jù)其中兩個(gè)字段去重。 首先,使用Stream API將List轉(zhuǎn)換為Stream,然后使用distinct()方法進(jìn)行去重。distinct()方法默認(rèn)使用元素的equals()和hashCode()方法進(jìn)行去重。如果想要根據(jù)其中兩個(gè)字段進(jìn)行去重,需要重寫equals()和hashCode()方法

    2024年02月16日
    瀏覽(105)
  • Java List對(duì)象集合轉(zhuǎn)Json & Json轉(zhuǎn)List對(duì)象集合

    使用了阿里巴巴的 fastjson ?首先引入依賴 示例如下 輸出結(jié)果:

    2024年02月15日
    瀏覽(18)
  • Java 中 List 集合排序方法

    注:Collections的sort方法其實(shí)是調(diào)用了List接口自己的sort方法。 首先你需要list.parallelStream().sorted 進(jìn)行流處理,使用parallelStream可以充分調(diào)度多核CPU。 使用Comparator.comparing進(jìn)行排序,reversed()進(jìn)行倒序排列,thenComparing進(jìn)行下一個(gè)排序。 Comparator.comparing()里面的內(nèi)容,也是就是Obje

    2024年02月12日
    瀏覽(27)
  • 使用stream流對(duì)List<Map<String, Object>>集合根據(jù)value進(jìn)行排序

    第一步:初始化數(shù)據(jù) ========================================================= 第二步:開始排序 ① 根據(jù)數(shù)字排序 打印結(jié)果 ② 根據(jù)字符串排序 打印結(jié)果 ③ 根據(jù)時(shí)間類型排序 打印結(jié)果 總結(jié):String類型是萬金油的排序方式,基本都可以用!??! 補(bǔ)充一個(gè)排序方法 打印結(jié)果 就這樣。。。

    2024年02月16日
    瀏覽(97)
  • Java自定義校驗(yàn)注解實(shí)現(xiàn)List、set集合字段唯一性校驗(yàn)

    Java自定義校驗(yàn)注解實(shí)現(xiàn)List、set集合字段唯一性校驗(yàn)

    在開發(fā)過程中,前端給后端傳遞集合,并且需要保證集合的實(shí)體類中的某些字段必須是惟一的,不能重復(fù)。 傳遞的集合: 集合對(duì)應(yīng)的實(shí)體類: 如果我們要保證傳遞的name或者card必須是唯一的,不能重復(fù),應(yīng)該如何實(shí)現(xiàn)呢,此時(shí)可以通過自定義注解的方式實(shí)現(xiàn)。 @Documented @Do

    2024年02月14日
    瀏覽(57)
  • 【java】List對(duì)象集合去除特定對(duì)象的優(yōu)雅寫法(基于java8)

    【java】List對(duì)象集合去除特定對(duì)象的優(yōu)雅寫法(基于java8) 主要用的是 Java List.removeIf方法,該方法用于刪除所有滿足特定條件的數(shù)組元素,入?yún)⑵鋵?shí)是一個(gè)布爾值的表達(dá)式即可。 使用場(chǎng)景,用戶類中的性別字段有三個(gè),分別是男、女、未知。 當(dāng)前端要查詢:“男”時(shí),要求

    2024年02月16日
    瀏覽(91)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包