JDK1.8 List.stream 获取数据的某个字段去重

List.stream 获取某个字段的数据去重

创建实体
public class person {

    private Integer id; //id
    private String name; //姓名
    private Integer age; //年龄

    public Integer getId() {
        return id;
    }

    public void setId(Integer 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 static void main(String[] args) {
        List<person> personList = new ArrayList<>();
        personList.add(new person(1,"李小明",12));
        personList.add(new person(2,"王红",12));
        personList.add(new person(3,"张强",13));
        personList.add(new person(4,"李明",15));
        Set<Integer> collect = personList.stream().map(person::getAge).collect(Collectors.toSet());
        System.out.printf(collect.toString());


    }
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
可以使用Java 8中的Stream API和Lambda表达式来获取List中某个字段的值,并将其组成新的List集合。你可以使用map方法来映射每个对象的字段值,然后使用collect方法将这些值收集到一个新的List中。 例如,如果你有一个List<Object>对象列表,并且你想要提取其中一个字段的值,你可以使用以下代码: List<Object> objectList = new ArrayList<>(); List<Object> newList = objectList.stream() .map(Object::getVar) .collect(Collectors.toList()); 在这个例子中,我们使用stream方法将List转换为一个流,然后使用map方法将每个对象的getVar字段值映射到一个新的流中。最后,使用collect方法将这些值收集到一个新的List中。 如果你有一个List<ShoppingCart>对象列表,并且你想要提取其中一个字段的值,比如selectByUId的goodsId,你可以使用以下代码: List<ShoppingCart> selectByUId = new ArrayList<>(); List<Integer> goodsIdList = selectByUId.stream() .map(ShoppingCart::getGoodsId) .collect(Collectors.toList()); 在这个例子中,我们使用stream方法将List转换为一个流,然后使用map方法将每个对象的getGoodsId字段值映射到一个新的流中。最后,使用collect方法将这些值收集到一个新的List中。 这样,你就可以使用Java 8的Stream API和Lambda表达式来获取List中某个字段的值,并将其组成新的List集合。 #### 引用[.reference_title] - *1* *3* [Java8 stream 提取 List 中元素的某一字段生成新的 List](https://blog.csdn.net/kjahe/article/details/126489216)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^koosearch_v1,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [java list获取某个字段](https://blog.csdn.net/weixin_42594427/article/details/129448097)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^koosearch_v1,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值