Я пытаюсь заполнить карту, которая объявлена как этотКак создать карту java с этими параметрами Карта <Object, ArrayList <Object>>?
Map<Person, ArrayList<Location>> personByLocation =
new HashMap<String, ArrayList<Location>>();
Они являются Person
и Location
:
public class Person {
private Location location;
private String name;
public Person(Location location, String name) {
this.location = location;
this.name = name;
}
public Location getLocation() {
return location;
}
public void setLocation(Location location) {
this.location = location;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
public class Location {
private LocationType locType;
private String locWeather;
public Location(LocationType locType, String locWeather) {
this.locType = locType;
this.locWeather = locWeather;
}
public LocationType getLocType() {
return locType;
}
public void setLocType(LocationType locType) {
this.locType = locType;
}
public String getLocWeather() {
return locWeather;
}
public void setLocWeather(String locWeather) {
this.locWeather = locWeather;
}
public enum LocationType {
Amsterdam, London, Wiena, Paris, Egypt;
}
}
Я пытаюсь сделать запись в этом Карта, но не сейчас, как это сделать. Если я создаю экземпляр Person и поставлю его как ключ, данные, которые запись как значение для этого ключа будут дублированы с данными для Location в ArrayList.
Вот что я сделал, но он вообще не работал.
Location location = new Location(LocationType.Paris, "sunny");
Person person = new Person(new Location(LocationType.Paris, "sunny"), "Timm");
for (Entry<Person, ArrayList<Location>> entry : personByLocation.entrySet()) {
System.out.println(entry.getKey() + " " + entry.getValue());
}
'Карта> personByLocation = новый HashMap >();' не будет компилировать, я обещаю, что. –
Smutje
ОК. Каков правильный способ сделать это? – NoSuchUserException
Зачем использовать «карту» в первую очередь? Используйте 'Set' и извлеките места из вашего' Person's. –
Mena