我是Java新手,我根本不知道如何做到这一点。
我有这个Java数组:
String luni[];
luni = new String[] {"A","B","C"};
我希望数组中的每个值A
,B
,C
变为HashSet
变量,如下所示:
Set<String> luni[0] = new HashSet<>(500);
Set<String> luni[1] = new HashSet<>(500);
Set<String> luni[2] = new HashSet<>(500);
最终将A
,B
,C
作为HashSet
我可以在luni[0].add("string");
使用{{1}}
我希望你明白这个主意。我怎么能这样做,它似乎不会像我写的那样起作用?
答案 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,就像你想要的那样。