Java数组值为hashset

时间:2014-11-03 14:54:07

标签: java arrays hashset

我是Java新手,我根本不知道如何做到这一点。

我有这个Java数组:

String luni[];
luni = new String[] {"A","B","C"};

我希望数组中的每个值ABC变为HashSet变量,如下所示:

Set<String> luni[0] = new HashSet<>(500);
Set<String> luni[1] = new HashSet<>(500);
Set<String> luni[2] = new HashSet<>(500);

最终将ABC作为HashSet我可以在luni[0].add("string");使用{{1}} 我希望你明白这个主意。我怎么能这样做,它似乎不会像我写的那样起作用?

3 个答案:

答案 0 :(得分:2)

您可以使用HashMap,它会有String个密钥和HashSet值。

HashMap<String, HashSet<Whatever>> map 
    = new HashMap<String, HashSet<Whatever>>();

答案 1 :(得分:1)

原始答案是:

  

如果您只需要通过索引访问数组中的每个HashSet,   luni[0].add("string"),那么您只需要将luni定义为   集数组:

但实际上,你需要使用一个ArrayList of Sets(或者使用一个原始数组,但那并不好),你仍然可以使用它带有索引:

请注意,只有当您没有真正使用&#34; A&#34;,&#34; B&#34;,&#34; C&#34;而你只是想通过索引访问hashsets。

    List<Set<String>> luni = new ArrayList<Set<String>>();

    luni.add(  new HashSet<String>(500) );
    luni.add(  new HashSet<String>(500) );
    luni.add(  new HashSet<String>(500) );

    luni.get(0).add("String");

答案 2 :(得分:0)

使用:

Map<String, Set<String>> luni = new HashMap<>();
luni.put("A", new HashSet<String>(500));
luni.put("B", new HashSet<String>(500));
luni.put("C", new HashSet<String>(500));
// To add a value to B:
luni.get("B").add("some string");

或:

List<Set<String>> luni = new ArrayList<>(3);
luni.add(new HashSet<String>(500));
luni.add(new HashSet<String>(500));
luni.add(new HashSet<String>(500));
// To add a value to 'B' (index 1):
luni.get(1).add("some string");

我建议使用第一个。第二个使用索引代替A,B和C,就像你想要的那样。