【发布时间】:2013-11-11 04:25:09
【问题描述】:
我有一个列表,其中存储了一些对象。我想从列表中删除某个属性已不存在的对象。我的示例代码是,请帮助我。
public class Mysamples {
private void example() {
List<SomeType> listWithDuplicates = new ArrayList<SomeType>();
SomeType someObject1 = new SomeType("hello", "1");
SomeType someObject2 = new SomeType("hello", "2");
}
private void removeDuplicates(List<SomeType> listWithDuplicates) {
/* Set of all attributes seen so far */
Set<String> attributes = new HashSet<String>();
/* All confirmed duplicates go in here */
List duplicates = new ArrayList<SomeType>();
for (SomeType x : listWithDuplicates) {
if (attributes.contains(x.getName()))
{
duplicates.add(x);
}
attributes.add(x.getName());
}
System.out.println(duplicates);
// System.out.println(attributes);
}
public static void main(String[] args) {
// TODO code application logic here
List<SomeType> listWithDuplicates = new ArrayList<SomeType>();
SomeType someObject1 = new SomeType("hello", "1");
SomeType someObject2 = new SomeType("hello", "2");
SomeType someObject3 = new SomeType("hello", "1");
SomeType someObject4 = new SomeType("hello1", "2");
SomeType someObject5 = new SomeType("hello1", "1");
SomeType someObject6 = new SomeType("hello2", "2");
listWithDuplicates.add(someObject1);
listWithDuplicates.add(someObject2);
listWithDuplicates.add(someObject3);
listWithDuplicates.add(someObject4);
listWithDuplicates.add(someObject5);
listWithDuplicates.add(someObject6);
Mysamples s = new Mysamples();
s.removeDuplicates(listWithDuplicates);
}
}
*输出是*
[SomeType{name=hello, id=2}, SomeType{name=hello, id=1}, SomeType{name=hello1, id=1}]
但我想要这样的输出
[SomeType{name=hello, id=1,SomeType{name=hello, id=2}, SomeType{name=hello, id=1}} SomeType{name=hello1, id=2},SomeType{name=hello1, id=1}]]
【问题讨论】:
-
不清楚,你要达到什么目的
-
我的结果列表包含的对象少于一个作为实际对象数
-
那么不添加该结果的标准是什么?以及当添加的列表为空时如何决定添加哪个项目