我正在填充一个哈希图,以使我的对象按其属性之一分组。我发现在将我的对象添加到列表之前检查列表(值)是否存在是“丑陋的”。
一个例子会更明确:
// Need a map to group Person by age.
// Person = {age: int}
Map<Integer, List<Person>> myHashMap = new HashMap();
for (Person person : persons) {
int age = person.getAge();
List<Person> personsOfSameAge = myHashMap.get(age);
if (personsOfSameAge != null) {
personsOfSameAge.add(person);
} else {
personsOfSameAge = new ArrayList();
personsOfSameAge.add(person);
myHashMap.put(age, personsOfSameAge);
}
}
有没有更好的编码方法?
myHashMap.addToValueListOrCreateValueList(myObject);