Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/79.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在动态2D数组中存储数据_Java_Arraylist_Data Storage - Fatal编程技术网

Java 在动态2D数组中存储数据

Java 在动态2D数组中存储数据,java,arraylist,data-storage,Java,Arraylist,Data Storage,我有一张这样的人的名单list。现在我要按每个人的性别来划分这个名单。之后,我想有一个二维对象。第一个维度是性别,第二个维度是人本身 我现在的问题是我不知道如何存储数据。稍后我必须添加和删除第二个维度中的项目,如果可以使用[]]或(性别、位置)获取项目,那就太好了。我考虑过嵌套数组列表,但我认为这是一个令人不快的解决方案。您将如何解决此问题?更新 如果需要这种表示法,请使用封装在“自定义”对象集合中的数组映射,如下所示: enum Gender { MALE, FEMALE } cla

我有一张这样的人的名单
list
。现在我要按每个人的性别来划分这个名单。之后,我想有一个二维对象。第一个维度是性别,第二个维度是人本身

我现在的问题是我不知道如何存储数据。稍后我必须添加和删除第二个维度中的项目,如果可以使用
[]]或(性别、位置)
获取项目,那就太好了。我考虑过嵌套数组列表,但我认为这是一个令人不快的解决方案。您将如何解决此问题?

更新

如果需要这种表示法,请使用封装在“自定义”对象集合中的数组映射,如下所示:

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);
    }

}
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;
        }
    }
}
更新

如果需要这种表示法,请使用封装在“自定义”对象集合中的数组映射,如下所示:

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);
    }

}
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;
        }
    }
}

我将创建自己的数据结构,如下所示:

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);
    }

}
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;
        }
    }
}
公共类人员列表{
私人名单;
私人名单上的妇女;
公众人物get(角色性别、内部职位){
开关(性别){
案例“M”:
返回人员。元素(位置);
案例“W”:
返回女性。elementAt(位置);
}
}
公共空白插入(p人){
开关(p.getGender()){
案例“M”:
男子:插入(p);
打破
案例“W”:
插入(p);
打破
}
}
}

我会创建自己的数据结构,如下所示:

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);
    }

}
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;
        }
    }
}
公共类人员列表{
私人名单;
私人名单上的妇女;
公众人物get(角色性别、内部职位){
开关(性别){
案例“M”:
返回人员。元素(位置);
案例“W”:
返回女性。elementAt(位置);
}
}
公共空白插入(p人){
开关(p.getGender()){
案例“M”:
男子:插入(p);
打破
案例“W”:
插入(p);
打破
}
}
}