我想创建一个集合数组并为我的程序访问它们。但是,由于数组不能与泛型类型合并,我已将HashSet
类包装在另一个类中,如下所示。
Class MyClass{
private HashSet<Integer> myKeys;
public boolean add(Integer i) { return myKeys.add(i); }
public boolean contains(Integer i){ return myKeys.contains(i); }
public boolean remove(Integer i){ return myKeys.remove(i); }
}
稍后在我的main()
方法中,我输入了以下代码:
public static void main(String []args){
System.out.println("Hello World");
MySets[] keys= new MySets[2];
keys[1].add(1);
keys[2].add(2);
keys[1].add(2);
keys[2].add(4);
System.out.println("Key 1=" +keys[1]+" Key 2=" +keys[2]);
}
我无法访问任何可能的对象,因为它们未初始化为HashSet。请提供一个可能的解决方案来访问这些集。
答案 0 :(得分:0)
数组上的对象为null,因为您没有初始化它们。
你必须先将它们初始化。
您还必须初始化HashSet
。
您应该使用Set
界面而不是HashSet
。
您的阵列的索引也存在问题。 Java索引从0开始。
class MySets {
private Set<Integer> myKeys = new HashSet<Integer>();
public boolean add(Integer i) { return myKeys.add(i); }
public boolean contains(Integer i){ return myKeys.contains(i); }
public boolean remove(Integer i){ return myKeys.remove(i); }
}
public static void main(String []args){
System.out.println("Hello World");
MySets[] keys= new MySets[2];
keys[0] = new MySets();
keys[1] = new MySets();
keys[0].add(1);
keys[1].add(2);
keys[0].add(2);
keys[1].add(4);
System.out.println("Key 1=" +keys[0]+" Key 2=" +keys[1]);
}