创建无限的词典或列表

时间:2016-02-09 22:24:09

标签: java

我需要获得用户输入,以便为订购或密钥保存创建列表,元组,哈希表等。例如在python中,完成时看起来像这样:

all = {'main1':{'name':'Hannag', 'birth':'date1', 'gender':'female'}, 'main2':{'name':'Kate', 'birth':'date2', 'gender':'female'}, 'main3':{'name':'Ben', 'birth':'date3', 'gender':'male'}}

在java中,我还没想出如何创建一个包含更多字符串键的字符串键。 main1':{'name':'Hannag', 'birth':'date1', 'gender':'female'} 我尝试过使用元组,但是你只能用我使用tuple3尝试过的一组数字。

        Map<String, Tuple3<String, String, String>> dos = new HashMap<String, Tuple3<String, String, String>>();
        while(adds.contains(contin))
    {
        String li = input.nextLine();
        String fName = input.nextLine();
        String fDir = input.nextLine();

        do.Add(fName, new Tuple3((String) li, (String) fName, (String) fDir));

我也尝试在哈希表中使用哈希表,但哈希表标题不能成为字符串。我需要哈希表或列表等的名称作为字符串。有什么方法可以解决这个问题吗?

1 个答案:

答案 0 :(得分:2)

不要乱搞元组和地图,而是创建一个类:

class Person {
   final String name;
   final String birth; // maybe make this a Date?
   final String gender; // if you subscribe to the gender binary, maybe make this an enum?
   Person(String name, String birth, String gender) { // constructor
     this.name = name;
     this.birth = birth;
     this.gender = gender;
   }
}

然后有一个

Map<String, Person> map = new HashMap<>();
map.put("main1", new Person("Hannag", "date1", "female"));
...