多个list合并并且不能重复

问题描述:如何将两个List合并,且其中不允许出现重复的项 大家好,本文将围绕java合并两个list保证元素不重复展开说明,多个list合并并且不能重复数据是一个很多人都想弄明白的事情,想搞清楚合并两个list去除重复的元素需要先了解以下几个事情。

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

多个list合并并且不能重复的相关图片

public static void main(String args[]){。

    /**

      * 大体思路:

      * 1.把list2添加到list1中;添加时,先循环list2,用list2中的每个值,分别和。

      *  list1去比较,如果重复,跳出循环,则不添加,如果不重复,则list2的值添加到list1中。

      */

    List<Integer> list2=new ArrayList<Integer>();  。

     list2.add(1);  。

     list2.add(2);  。

     list2.add(4);  。

    

    List<Integer> list1=new ArrayList<Integer>();  。

     list1.add(1);  。

     list1.add(2);  。

     list1.add(5);  。

     

    temp = 0;//重复标识 0-该值在list1中唯一;1-该值在list1中有重复值。

    for(int i=0 ;i < list2.size();i++){。

        for(int j=0; j< list1.size(); j++){。

            if (list2.get(i) == list1.get(j)){。

                temp = 1;。

            }

        }

        if(temp = 0){。

            list1.add(list2.get(i));。

        }

    }  

    

    System.out.println(list1.size());。

后记:list1本身也需要去重,方法一样,自己去一下吧。

用java找出这几个list,所有可能的组合,并且组合结果的list中的数据不允许重复的相关图片

用java找出这几个list,所有可能的组合,并且组合结果的list中的数据不允许重复

示例代码:

    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]。

代码要典:

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

去重,借助LinkedHashSet 。

如何合并很多很多个list集合,不是两个的相关图片

如何合并很多很多个list集合,不是两个

import java.util.ArrayList;。

import java.util.Arrays;。

import java.util.Iterator;。

import java.util.List;。

import java.util.TreeSet;。

public class MyCode {。

static TreeSet<String> ts = new TreeSet<>();。

static StringBuffer stb = new StringBuffer();。

public static void main(String args[]) {。

List<Integer> a = new ArrayList<>();。

a.add(1);

a.add(2);

a.add(3);

List<Integer> b = new ArrayList<>();。

b.add(2);

b.add(3);

b.add(4);

b.add(5);

List<Integer> c = new ArrayList<>();。

c.add(5);

c.add(6);

List<Integer> d = new ArrayList<>();。

d.add(5);

List<Integer> e = new ArrayList<>();。

e.add(7);

String arr[];。

List<String> names = (Arrays.asList("a,b,c,d,e".split(",")));。

ArrayList<List<Integer>> list = new ArrayList<>();。

list.add(a);

list.add(b);

list.add(c);

list.add(d);

list.add(e);

for (int i = 0; i < list.size(); i++) {。

List<Integer> temA = new ArrayList<>(list.get(i));。

for (int j = i + 1; j < list.size(); j++) {。

List<Integer> temB = new ArrayList<>(list.get(j));。

temA.retainAll(temB);。

if (temA.size() <= 0) {。

List<Integer> temC = new ArrayList<>(list.get(i));。

List<Integer> temD = new ArrayList<>(list.get(j));。

temC.addAll(temD);。

stb.append(names.get(i) + "," + names.get(j) + ",");。

getNameIndex(temC, list, i, j, names);。

arr = stb.toString().split(",");。

Arrays.sort(arr);。

ts.add(Arrays.toString(arr));。

stb.delete(0, stb.length());。

}

}

}

for (Iterator<String> it = ts.iterator(); it.hasNext();) {。

System.out.println(it.next());。

}

}

private static void getNameIndex(List<Integer> listTem, List<List<Integer>> listB, int x, int y,。

List<String> names) {。

for (int i = 0; i < listB.size(); i++) {。

if (i == x || i == y) {。

continue;

}

List<Integer> listN = new ArrayList<>(listTem);。

List<Integer> listM = new ArrayList<>(listB.get(i));。

listN.retainAll(listM);。

if (listN.size() <= 0) {。

stb.append(names.get(i));。

break;

}

}

}

你这个,麻雀虽小,五脏俱全呢,看似一个简单的小玩意,挺费劲的!。

主要用的是交集,并集,难点就是因为嵌套,有点饶头..你自己琢磨一下吧!。

请教两个ArrayList合并,并且去掉重复数据的算法的相关图片

请教两个ArrayList合并,并且去掉重复数据的算法

新定义一个类,这个类包含两个已有类成员以及共有的Id。然后,遍历原有List集合查找Id匹配对象。找到后,生成新定义类的实例并放入合并List集合。 举例如下(C#): // 原有类1public class Class1{ public int Id { get; set; } //其余代码略……...。

vslist列表多列如何合并成一列

import java.util.*;。

public class Test {。

public static void main(String[] args){ 。

List <Integer> l1=new ArrayList<Integer>();。

l1.add(1);l1.add(2);l1.add(3);。

l1.add(4);l1.add(5);l1.add(6);。

List <Integer> l2=new ArrayList<Integer>();。

l2.add(4);l2.add(5);l2.add(6);。

l2.add(7);l2.add(8);l2.add(9);。

Set<Integer> s=new TreeSet(l1);。

for(Integer i:l2){。

//当添加不成功的时候 说明s中已经存在该对象,直接remove掉该对象即可。

if(!s.add(i)) s.remove(i);。

}

System.out.println(s);。

//还可以用下面一种方法

List <Integer> temp=new ArrayList<Integer>(l1);//用来保存两者共同有的数据。

temp.retainAll(l2);。

l1.removeAll(temp);//l1中去掉两者共同有的数据。

l2.removeAll(temp);//l2中去掉两者共同有的数据。

List <Integer> l3=new ArrayList<Integer>();。

l3.addAll(l1);。

l3.addAll(l2);。

System.out.println(l3);。

}

原文地址:http://www.qianchusai.com/%E5%A4%9A%E4%B8%AAlist%E5%90%88%E5%B9%B6%E5%B9%B6%E4%B8%94%E4%B8%8D%E8%83%BD%E9%87%8D%E5%A4%8D.html

古代社会读后感3000字,古代人的日常生活读后感300字

古代社会读后感3000字,古代人的日常生活读后感300字

v1/article-659

v1/article-659

clash订阅链接怎么获得,clash免费节点每天更新

clash订阅链接怎么获得,clash免费节点每天更新

cc/咒术回战两面宿傩手绘,咒术回战宿傩领域展开图片

cc/咒术回战两面宿傩手绘,咒术回战宿傩领域展开图片

192.168.0.1浏览器登录,192.168.0.1浏览器登录手机

192.168.0.1浏览器登录,192.168.0.1浏览器登录手机

单元测试调试react源码

单元测试调试react源码

preponderant-30,preponderate

preponderant-30,preponderate

colonoscopy-30,colonoscopy怎么读

colonoscopy-30,colonoscopy怎么读

recess前面用什么介词,essential后面加什么介词

recess前面用什么介词,essential后面加什么介词

推特乐仔levi飞机,乐仔大量飞机视频推特

推特乐仔levi飞机,乐仔大量飞机视频推特