Java处理两个List集合中对象数据合并处理数据后为同一个List集合对象

描述:比如一个List集合中List<对象1>,该对象1包含A、B和C列另外一个List集合中List<对象2>,该对象2包含A、D列问题:需要将两个List合成List<对象3>返回,该对象3包含A、B、C、D列解决:1.需要判断出哪个List集合的数据比较少,例如第二个集合数据少,可以执行: Map<String,User2...
摘要由CSDN通过智能技术生成

描述:

比如一个List集合中List<对象1>,该对象1包含A、B和C列

另外一个List集合中List<对象2>,该对象2包含A、D列

问题:需要将两个List合成List<对象3>返回,该对象3包含A、B、C、D列

解决方法1:1.需要判断出哪个List集合的数据比较少,例如第二个集合数据少,可以执行:

  Map<String,User2> map2 = list2.stream().collect(Collectors.toMap(User2::getUserCode,item->{
            return item;
        },(v1,v2)->(v2)));

 或者使用:

  Map<String,User2> map = Maps.uniqueIndex(list2, new Function<User2, String>() {
            @Override
            public String apply(User2 user2) {
                return user2.getUserCode();
            }
        });

之后循环遍历第一个集合,因为第一个集合数据多,防止不能展示全部执行:

  • 1
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
要将两个不同的List集合对象数据合并,需要注意几点: 1. 对象必须具有相同的类型,否则无法合并。 2. 对象必须实现equals()和hashCode()方法,以便正确地去重和比较。 3. 如果两个对象相同,则只保留一个,以避免重复。 下面是一个示例代码,演示如何将两个不同的List集合对象数据合并: ```java import java.util.ArrayList; import java.util.HashSet; import java.util.List; import java.util.Set; public class MergeListDemo { public static void main(String[] args) { List<Person> list1 = new ArrayList<>(); list1.add(new Person("Tom", 18)); list1.add(new Person("Lucy", 20)); List<Person> list2 = new ArrayList<>(); list2.add(new Person("Jim", 22)); list2.add(new Person("Lucy", 20)); Set<Person> set = new HashSet<>(); set.addAll(list1); set.addAll(list2); List<Person> list3 = new ArrayList<>(set); System.out.println(list3); } } class Person { private String name; private int age; public Person(String name, int age) { this.name = name; this.age = age; } @Override public boolean equals(Object obj) { if (obj == null) return false; if (this == obj) return true; if (!(obj instanceof Person)) return false; Person other = (Person) obj; if (name == null) { if (other.name != null) return false; } else if (!name.equals(other.name)) return false; if (age != other.age) return false; return true; } @Override public int hashCode() { final int prime = 31; int result = 1; result = prime * result + ((name == null) ? 0 : name.hashCode()); result = prime * result + age; return result; } @Override public String toString() { return "Person [name=" + name + ", age=" + age + "]"; } } ``` 在上面的示例代码,我们创建了两个List集合list1和list2,并向每个集合添加了两个Person类型的对象。然后,我们创建了一个HashSet集合set,将list1和list2的所有元素添加到set。由于HashSet会自动去重,所以我们可以确保最终合并后的集合不会有重复的对象。最后,我们将set的元素转换为List集合并输出。输出结果为: ``` [Person [name=Lucy, age=20], Person [name=Jim, age=22], Person [name=Tom, age=18]] ``` 注意,输出结果只保留了一个name为Lucy、age为20的对象,这是因为我们在Person类实现了equals()和hashCode()方法,确保了对象的唯一性。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值