java 怎么把多个list 合并成一个去掉重复的

 我来答
ifeilong
2016-09-04 · TA获得超过8068个赞
知道大有可为答主
回答量:1187
采纳率:100%
帮助的人:807万
展开全部

示例代码:


    public static void main(String[] args){
        List<Integer> list1 = new ArrayList<Integer>();
        list1.add(1);
        list1.add(2);
        list1.add(3);
        list1.add(4);
        List<Integer> list2 = new ArrayList<Integer>();
        list2.add(1);
        list2.add(4);
        list2.add(7);
        list2.add(10);
        List<Integer> listAll = new ArrayList<Integer>();
        listAll.addAll(list1);
        listAll.addAll(list2);
        listAll = new ArrayList<Integer>(new LinkedHashSet<>(listAll));
        System.out.println(listAll);
    }


输出:


[1, 2, 3, 4, 7, 10]


代码要典:


  1. 合并 使用java.util.List.addAll(Collection<? extends Integer>)

  2. 去重,借助LinkedHashSet 

AngleBlack歌
高粉答主

2018-04-05 · 每个回答都超有意思的
知道小有建树答主
回答量:271
采纳率:94%
帮助的人:4.1万
展开全部

下面的例子讲了如何合并两个java list, 用简单的方法,而不用自己去造轮子,循环list 去做,用如下建档方法:

import java.util.ArrayList;import java.util.List;public class JoinList {    

public static void main(String[] args) {         

List<String> listA = new ArrayList<String>();        listA.add("A");

List<String> listB = new ArrayList<String>();        listB.add("B");

List<String> listFinal = new ArrayList<String>

();        listFinal.addAll(listA);        listFinal.addAll(listB);

//same result        //List<String> listFinal = new ArrayList<String>

(listA);        //listFinal.addAll(listB);

System.out.println("listA : " + listA);        System.out.println("listB : " + listB);        System.out.println("listFinal : " + listFinal);

}}

你可以看到结果如下:
listA : [A]listB : [B]listFinal : [A, B]

其实最关键的就是调用 list 的 addall 方法,apache 的 listUtil  , 里面有个 union 方法,其实也是用的 addall 方法。

本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式