簡體   English   中英

如何初始化和訪問集合對象的數組

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM