0

リストの次の宣言があるとします。

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

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

どうすれば に追加できるのだろうと思っていbましたcか?

試しましc.add(b); たが、これはうまくいきません。

助けてくれてありがとう!

4

5 に答える 5

1

ジェネリックを使用しており、それが のリストになり、を含む のリストになるbと定義しているため、いいえ、に追加することはできませんIntegerscHashSetIntegersbc

于 2012-12-04T19:04:39.977 に答える
1

はい、整数の最初のリスト 整数のハッシュセットの 2 番目のリスト ywo バリアントがあるため、

  • そのような最初のリストのすべての値を2番目のリストの最初の値に追加します

HashSet<Integer> hs = new HashSet();
hs.addAll(b);
c.add(hs);
  • 最初のリストの各値に対して HashSet の新しいインスタンスを作成し、最初のリストから 1 つの値を配置します。このソリューションでは、最初のリストをループします。
 for (Integer value: b){
     c.add(new HashSet<Integer>(){{add(value);}};);

}
于 2012-12-04T19:04:40.123 に答える
1

リストのリストではなく、セットのリスト(具体的には「ハッシュセット」)cとして宣言しました。そのため、リストを追加しても意味がありません。リストのリストになりたい場合は、次のように記述できます。c

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

c.add(b);
于 2012-12-04T19:03:20.760 に答える
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);
于 2012-12-04T19:07:24.907 に答える
1

HashSet整数のリストに整数を追加することはできません。これらは 2 つの異なるデータ型です。整数のリストではなく整数のがある場合はHashSet、それらをリストに追加できます。

このような:

HashSet< Integer> b = new HashSet< Integer>();
List< HashSet < Integer>> c = new ArrayList< HashSet< Integer>>();
c.add(b);
于 2012-12-04T19:03:45.930 に答える