我真的需要解决一个我陷入了3天的问题。任何帮助,将不胜感激。按对象属性对元素进行分组
我有一个Car
类品牌,模型和颜色实例变量。
我有一个Preferences
类名,品牌,模型和颜色实例变量。
我有一个preferences
(Key = name,value = Car)包含人名作为关键字的HashMap和他们希望作为值驱动的Car。
最后,我有一个names
ArrayList,其中包含系统中的所有名称。
我想以某种方式根据他们想驾驶的汽车对人员进行分组。
例如我所要的输出是这样的:
福特福克斯,2006年,蓝:尼克,比尔,吉姆
欧宝雅特,2008年,黑色:乔,乔治
奔驰CLK,2009年,黑色:史蒂夫,克里斯,约翰
我想到的第一件事是,我可以把所有的重复列表中,然后得到该名单的名称,但我想通了,我不能形成组的人根据他们喜欢的车。所以,我认为下面这段代码根本没有帮助。
Preferences[] p = new Preferences[preferences.size()];
for (int i = 0; i < preferences.size(); i++) {
p[i] = (Preferences) preferences.get(names.get(i));
Car car = new Car(p[i].getBrand(), p[i].getModel(), p[i].getColor());
if (!set.add(car)) { //duplicate
System.out.println("Duplicate!");
listOfDuplicates.add(car);
}
}
有什么我可以做的吗?
那么'Preferences'类又有什么用呢? – arshajii
首选项不是Car [首选数据的分层集合中的节点](http://docs.oracle.com/javase/1.4.2/docs/api/java/util/prefs/Preferences.html) – vels4j
你应该使用番石榴的MultiMap作为@JBNizet所说的 –