[英]How to initialise and access an array of collection objects
我想創建一組數組並為我的程序訪問它們。 但是,由於數組無法與通用類型合並,因此我將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]);
}
我無法訪問任何對象,因為它們沒有初始化為HashSets。 請提出訪問集的可能解決方案。
數組上的對象為空,因為您沒有初始化它們。 您必須先初始化它們。 您還必須初始化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]);
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.