1

我想使用集合制作这种类型的数据格式。

[username] = test
[password] = test
[model] = City
[action] = add
[City] = Array
    (
        [name] = Added from me
        [state_id] = 1243
    )
4

4 回答 4

9

Map很适合这里

Map<Object, Object> map = new HashMap<Object, Object>();
map.put("username", "test@test.com");
map.put("city", arrayOfCity);

确保如果您正在使用实现,HashMap那么您需要为您添加的自定义类型提供合理的版本hashcode()equals()Map

如果您有一组固定的属性,那么您应该使用类并创建一个,如果没有,则使用 map

于 2012-05-30T07:11:38.523 回答
7

我会将您的对象收集到一个对象中:

public class Person {

     private final String username;
     private final String[] cities;


     public Person(String username, String[] cities){
          this.username = username;
          this.cities = cities;
     }

     public String getUsername(){
          return this.username;
     }

     public String[] getCities(){  // or pass an int and return one city
          return this.cities; 
     }
}

然后,您可以将它放在一个集合中:

Person p1 = new Person("test@test.com", new String[]{"Liverpool","London"});
Person p2 = new Person("another@test.com", new String[]{"New York","California"});

List<Person> people = new ArrayList<Person>();
people.add(p1);
people.add(p2);
于 2012-05-30T07:16:26.073 回答
2

你可以使用Java HashMap。这将为您提供您所需要的。

Map<String, Object> map = new HashMap<String, Object>();
于 2012-05-30T07:11:55.540 回答
0

您可以编写一个pojo映射到您提到的字段。这将比使用集合来存储单个实体更清楚。

于 2012-05-30T07:16:59.233 回答