将列表存储到另一个列表

时间:2012-12-04 19:00:23

标签: java

如果我有以下列表声明:

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

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

我想知道如何将b添加到c

我试过c.add(b); 但这不起作用。

感谢您的帮助!

5 个答案:

答案 0 :(得分:1)

您已将c声明为列表(特别是“散列集”),而不是列表列表;所以向它添加一个列表是没有意义的。如果您希望c成为列表的列表,您可以写:

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

c.add(b);

答案 1 :(得分:1)

您无法将HashSet个整数添加到整数列表中。它们是两种不同的数据类型。如果你有一个HashSet的整数而不是整数列表,那么你就可以将它们添加到你的列表中。

像这样:

HashSet< Integer> b = new HashSet< Integer>();
List< HashSet < Integer>> c = new ArrayList< HashSet< Integer>>();
c.add(b);

答案 2 :(得分:1)

您正在使用泛型并定义b将是Integers的列表,而c将是包含HashSet的{​​{1}}列表,所以不,您无法将Integers添加到b

答案 3 :(得分:1)

是的,因为第一个整数列表是第二个整数的散列集列表 有两个变种,

  • 将第一个列表中的所有值添加到secod列表的第一个值

HashSet<Integer> hs = new HashSet();
hs.addAll(b);
c.add(hs);
  • 为第一个列表中的每个值创建HashSet的新实例,并从第一个列表中放入一个值,此解决方案使用循环到第一个列表
 for (Integer value: b){
     c.add(new HashSet<Integer>(){{add(value);}};);

}

答案 4 :(得分:1)

您可以先创建HashSet并将b中的元素设置为它,然后将HashSet添加到c,如下所示:

    List< Integer> b = new ArrayList< Integer>();
    List< HashSet < Integer>> c = new ArrayList< HashSet< Integer>>();
    HashSet < Integer> b1= new HashSet<Integer>();
    b1.addAll(b);
    c.add(b1);