Я хочу сделать этот тип данных с помощью коллекции.
[username] = test
[password] = test
[model] = City
[action] = add
[City] = Array
(
[name] = Added from me
[state_id] = 1243
)
Map
хороша здесь
Map<Object, Object> map = new HashMap<Object, Object>();
map.put("username", "[email protected]");
map.put("city", arrayOfCity);
Убедитесь, что вы используете реализацию HashMap
тогда вам нужно предоставить разумную версию hashcode()
и equals()
для вашего настраиваемого типа, который вы добавляете в Map
Если у вас есть фиксированный набор свойств, вы должны пойти с классом и создать его, если не использовать карту
Я собирал ваши объекты в один объект:
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("[email protected]", new String[]{"Liverpool","London"});
Person p2 = new Person("[email protected]", new String[]{"New York","California"});
List<Person> people = new ArrayList<Person>();
people.add(p1);
people.add(p2);
вы можете использовать Java HashMap. Это даст вам то, что вам нужно.
Map<String, Object> map = new HashMap<String, Object>();
Вы можете написать сопоставление pojo в упомянутые вами поля. Это будет яснее, чем использование коллекции для хранения отдельных объектов.