簡體   English   中英

將數據存儲在動態2D陣列中

[英]Store data in dynamic 2D Array

我有一個這樣的人List<People> 現在,我必須按每個人的性別來拆分此列表。 之后,我想要一個2D對象。 第一個維度是性別,第二個維度是人本身。

我現在的問題是我不知道如何存儲數據。 我稍后必須添加和刪除第二個維度中的項目,如果可以使用[][] or (gender, position)獲得項目,那就太好了。 我想到了嵌套的ArrayList,但是我認為這是一個不愉快的解決方案。 您將如何解決?

UPDATE

如果需要這種表示法,請使用封裝在“自定義”對象集合中的數組映射,如下所示:

enum Gender {
    MALE, FEMALE
}

class MyInfo {

    private Map<Gender, List<Person>> myInfo;

    public MyInfo(List<Person> females, List<Person> males) {
        myInfo = new HashMap<Gender, List<Person>>();
        myInfo.put(Gender.MALE, males);
        myInfo.put(Gender.FEMALE, females);
    }

    public Person get(Gender gender, int index) {
        myInfo.get(gender).get(index);
    }

}

並將每個人稱為:

Person selectedPerson = myInfo.get(Gender.MALE, 100);

我將創建自己的數據結構,如下所示:

public class PeopleList {

    private List<Person> men;
    private List<Person> women;

    public Person get(char gender, int position){
        switch (gender){
            case 'M': 
                return men.elementAt(position);
            case 'W': 
                return women.elementAt(position);
        }
    }

    public void insert(Person p){
        switch(p.getGender()){
            case 'M': 
                men.insert(p);
                break;
            case 'W': 
                women.insert(p);
                break;
        }
    }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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