日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

java表数据去重_java8实现列表去重,java8的stream 和lambda的使用实例

發(fā)布時間:2023/12/19 编程问答 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java表数据去重_java8实现列表去重,java8的stream 和lambda的使用实例 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

不管我們做安卓開發(fā)還是javaweb開發(fā),有時候我們會對列表進行去重操作,所謂的列表數(shù)據(jù)重復(fù),通常體現(xiàn)在列表集合數(shù)據(jù)中的id屬性相同。當(dāng)然我們通過普通的方式也可以達到去重的效果。但是借助java8新特性可以很方便的實現(xiàn)列表去重,下面就寫個小demo簡單的演示一下。

主要實現(xiàn)代碼

List persons = new ArrayList();

List ids = new ArrayList<>();//用來臨時存儲person的id

persons.add(new Person(1, "name1", 10));

persons.add(new Person(2, "name2", 21));

persons.add(new Person(5, "name5", 55));

persons.add(new Person(3, "name3", 34));

persons.add(new Person(1, "name1", 10));

List personList = persons.stream().filter(// 過濾去重

v -> {

boolean flag = !ids.contains(v.getId());

ids.add(v.getId());

return flag;

}

).collect(Collectors.toList());

System.out.println(personList);

運行后的打印如下.可以看出id為1時的重復(fù)數(shù)據(jù)已經(jīng)被過濾掉了

[

Person{id=1, name='name1', age=10},

Person{id=2, name='name2', age=21},

Person{id=5, name='name5', age=55},

Person{id=3, name='name3', age=34}

]

person類的代碼如下

package com.qcl.demo;

/**

* Created by qcl on 2018/3/26.

*/

public class Person {

private int id;

private String name;

private int age;

public Person() {

}

public Person(int id, String name, int age) {

this.id = id;

this.name = name;

this.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;

}

public int getId() {

return id;

}

public void setId(int id) {

this.id = id;

}

@Override

public String toString() {

return "Person{" +

"id=" + id +

", name='" + name + '\'' +

", age=" + age +

'}';

}

}

這只是java8在我們開發(fā)時比較常用的一個操作。

如下面這個例子使用也比較普遍

獲取person集合中的所有大于18周歲,并排序

List persons = new ArrayList();

persons.add(new Person(1, "name1", 10));

persons.add(new Person(2, "name2", 21));

persons.add(new Person(5, "name5", 55));

persons.add(new Person(3, "name3", 34));

persons.add(new Person(4, "name4", 6));

persons.stream()

.filter(p -> p.getAge() >= 18)//獲取所有18歲以上的用戶

.sorted(Comparator.comparing(Person::getAge))//依年紀升序排序

.sorted(Comparator.comparing(Person::getAge).reversed())//依年紀降序排序

.collect(Collectors.toList())

.forEach(System.out::println);

boolean isAllAdult = persons.stream().

allMatch(p -> p.getAge() > 18);

System.out.println("是否所有的用戶都大于18歲" + isAllAdult);

總結(jié):java8的使用,對于我們操作集合,數(shù)組提供了很大的便利。建議大家有機會多去了解下java8的新特性。

創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎勵來咯,堅持創(chuàng)作打卡瓜分現(xiàn)金大獎

總結(jié)

以上是生活随笔為你收集整理的java表数据去重_java8实现列表去重,java8的stream 和lambda的使用实例的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。