Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/363.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 集合中多个列表的内容_Java - Fatal编程技术网

Java 集合中多个列表的内容

Java 集合中多个列表的内容,java,Java,有没有办法将多个列表的内容放到一个集合中?(消除重复项) 例如,listA、listB、listC的内容都可以放在一个集合中。(假设它们属于同一类型)是的,如果您正在寻找一组列表,您可以声明一组列表 Set<List<SomeType>> mySet = new Set<>(); mySet.add(listA); mySet.add(listB); mySet.add(listC); Set mySet=new Set(); mySet.add(listA

有没有办法将多个列表的内容放到一个集合中?(消除重复项)


例如,listA、listB、listC的内容都可以放在一个集合中。(假设它们属于同一类型)

是的,如果您正在寻找一组列表,您可以声明一组列表

Set<List<SomeType>> mySet = new Set<>();
mySet.add(listA);
mySet.add(listB);
mySet.add(listC);
Set mySet=new Set();
mySet.add(listA);
mySet.add(listB);
mySet.add(listC);
你当然可以

该集合将添加每个列表中的所有元素,然后根据objects
equals
hashCode()
方法删除任何重复的对象。(实现一个时,应实现另一个。)

List listA=new ArrayList();
List listB=新的ArrayList();
List listC=new ArrayList();
Set=newhashset();
set.addAll(listA);
set.addAll(listB);
set.addAll(listC);
编辑:做了一些测试

下面是一个小测试方法,它表明了这一点:

public static void main(final String[] args) {
    final String one = new String("one");
    final String two = new String("two");
    final String three = new String("three");
    final String four = new String("four");

    final List<String> listA = new ArrayList<String>();
    listA.add(one);
    listA.add(two);

    final List<String> listB = new ArrayList<String>();
    listB.add(two);
    listB.add(three);

    final List<String> listC = new ArrayList<String>();
    listC.add(three);
    listC.add(four);

    final Set<String> set = new HashSet<String>();
    set.addAll(listA);
    set.addAll(listB);
    set.addAll(listC);

    System.out.println(set);
}
publicstaticvoidmain(最终字符串[]args){
最终字符串一=新字符串(“一”);
最终字符串二=新字符串(“二”);
最终字符串三=新字符串(“三”);
最终字符串四=新字符串(“四”);
最终列表listA=新的ArrayList();
增加(一);
增加(两个);
最终列表listB=新的ArrayList();
列表b.添加(两个);
列表b.添加(三个);
最终列表listC=新的ArrayList();
增加(三);
增加(四);
最终集=新的HashSet();
set.addAll(listA);
set.addAll(listB);
set.addAll(listC);
系统输出打印项次(套);
}
输出为:

[二,一,三,四]


这表明实现正在工作,但您显然应该记住,剩余对象的顺序可能不是您预期的或期望的。

是的,我们可以。你试过什么?你是怎么做的?它们是同一类型的吗?你没有给我们太多的信息,很难帮助你…你想从每个列表中消除重复项还是从整个liatA、listB、listC组中消除重复项不应该有重复项?我只想将3个列表合并到一个集合类型,同时消除重复项。
public static void main(final String[] args) {
    final String one = new String("one");
    final String two = new String("two");
    final String three = new String("three");
    final String four = new String("four");

    final List<String> listA = new ArrayList<String>();
    listA.add(one);
    listA.add(two);

    final List<String> listB = new ArrayList<String>();
    listB.add(two);
    listB.add(three);

    final List<String> listC = new ArrayList<String>();
    listC.add(three);
    listC.add(four);

    final Set<String> set = new HashSet<String>();
    set.addAll(listA);
    set.addAll(listB);
    set.addAll(listC);

    System.out.println(set);
}