java如何更优雅的合并两个集合

总结:通过Stream.concat()方法可以更优雅的合并两个集合,并且可以更轻松的执行去重、排序、过滤等一系列操作。

演示:

public class Test {

    public static void main(String[] args) {

        List<String> list1 = new ArrayList<>();
        list1.add("熊大");
        list1.add("熊二");
        list1.add("光头强");

        List<String> list2 = new ArrayList<>();
        list2.add("喜羊羊");
        list2.add("懒羊羊");
        list2.add("沸羊羊");
        list2.add("光头强");

        //通过Stream合并 & 顺便执行去重操作
        List<String> concatList = Stream
                .concat(list1.stream(), list2.stream())
                .distinct()
                .collect(Collectors.toList());

        System.out.println("通过Stream合并:" + concatList);

        System.out.println("===========================================");

        //常规合并,此时如果需要去重,还要再增加去重代码,比较麻烦
        List<String> list3 = new ArrayList<>();
        list3.addAll(list1);
        list3.addAll(list2);

        System.out.println("常规合并:" + list3);

    }
}

结果:

通过Stream合并:[熊大, 熊二, 光头强, 喜羊羊, 懒羊羊, 沸羊羊]
=====================================================
      常规合并:[熊大, 熊二, 光头强, 喜羊羊, 懒羊羊, 沸羊羊, 光头强]

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 可以使用 Java 8 的 Stream API 来实现合并两个 Map 集合,代码如下:Map<String, Object> map1 = new HashMap<>();map1.put("a", 1);map1.put("b", 2);Map<String, Object> map2 = new HashMap<>();map2.put("c", 3);map2.put("d", 4);Map<String, Object> result = Stream.of(map1, map2).map(map -> map.entrySet()) .flatMap(set -> set.stream()) .collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue));System.out.println(result); ### 回答2: 在Java中,可以使用putAll()方法来合并两个Map集合。 假设有两个Map集合,分别是map1和map2,如果想要将map2合并到map1中,可以使用以下代码: ``` map1.putAll(map2); ``` 这样就可以将map2中的所有键值对添加到map1中。如果map1中已经存在相同的键,那么对应的值将会被map2中的值替代。如果需要保留原有的值,可以在执行putAll()方法之前,先将map2的值复制到另一个Map集合中,然后再执行合并操作。 下面是一个完整的示例代码: ```java import java.util.HashMap; import java.util.Map; public class MergeMaps { public static void main(String[] args) { // 创建两个Map集合 Map<String, Integer> map1 = new HashMap<>(); map1.put("A", 1); map1.put("B", 2); Map<String, Integer> map2 = new HashMap<>(); map2.put("C", 3); map2.put("D", 4); // 合并两个Map集合 map1.putAll(map2); // 输出合并后的Map集合 System.out.println("合并后的Map集合:"); for (Map.Entry<String, Integer> entry : map1.entrySet()) { System.out.println(entry.getKey() + " : " + entry.getValue()); } } } ``` 运行上述代码,将会输出合并后的Map集合: ``` 合并后的Map集合: A : 1 B : 2 C : 3 D : 4 ``` 以上就是使用putAll()方法合并两个Map集合的方法。 ### 回答3: 可以使用`putAll()`方法将一个map中的所有键值对添加到另一个map中来合并两个map集合。 ```java import java.util.HashMap; import java.util.Map; public class MergeMaps { public static void main(String[] args) { // 创建两个map集合 Map<String, Integer> map1 = new HashMap<>(); map1.put("A", 1); map1.put("B", 2); Map<String, Integer> map2 = new HashMap<>(); map2.put("C", 3); map2.put("D", 4); // 合并map2到map1中 map1.putAll(map2); // 输出合并后的map1 System.out.println("合并后的Map集合:"); for (Map.Entry<String, Integer> entry : map1.entrySet()) { System.out.println(entry.getKey() + ": " + entry.getValue()); } } } ``` 运行以上代码,将输出合并后的map1集合: ``` 合并后的Map集合: A: 1 B: 2 C: 3 D: 4 ``` 这样就完成了两个map的合并

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值