Laravel  
laravel
文档
数据库
架构
入门
php技术
    
Laravelphp
laravel / php / java / vue / mysql / linux / python / javascript / html / css / c++ / c#

javalist根据某个字段去重

作者:掌心余温   发布日期:2026-06-09   浏览:101

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

class Item {
    private String id;
    private String name;

    public Item(String id, String name) {
        this.id = id;
        this.name = name;
    }

    public String getId() {
        return id;
    }

    public String getName() {
        return name;
    }

    @Override
    public String toString() {
        return "Item{id='" + id + "', name='" + name + "'}";
    }
}

public class Main {
    public static void main(String[] args) {
        List<Item> items = Arrays.asList(
            new Item("1", "Alice"),
            new Item("2", "Bob"),
            new Item("1", "Charlie"),
            new Item("3", "David")
        );

        // 根据id字段去重
        List<Item> uniqueItems = items.stream()
            .collect(Collectors.collectingAndThen(
                Collectors.toMap(Item::getId, item -> item, (existing, replacement) -> existing),
                map -> new ArrayList<>(map.values())
            ));

        // 输出去重后的结果
        uniqueItems.forEach(System.out::println);
    }
}

解释说明:

  1. 定义类 Item:我们创建了一个简单的 Item 类,包含两个字段 idname。为了方便测试,我们还重写了 toString 方法。
  2. 创建列表 items:我们创建了一个包含重复 idItem 对象列表。
  3. 根据 id 字段去重:使用 Java 8 的 Stream API 和 Collectors.toMap 方法来根据 id 字段去重。toMap 方法的第一个参数是键的提取器(这里是 Item::getId),第二个参数是值的提取器(这里是 item -> item),第三个参数是解决键冲突的合并函数(这里选择保留第一个出现的元素)。
  4. 输出去重后的结果:将去重后的结果转换为 List 并打印出来。

这个示例展示了如何根据某个字段(如 id)对 List 中的对象进行去重。

上一篇:java字符串转int

下一篇:java object转jsonobject

大家都在看

java url decode

java判断是windows还是linux

java连接数据库的代码

java date类型比较大小

java djl

ubuntu 卸载java

es java api

java list 查找

java 解压rar

jsonobject.tojavaobje

Laravel PHP 深圳智简公司。版权所有©2023-2043 LaravelPHP 粤ICP备2021048745号-3

Laravel 中文站