【发布时间】:2015-08-28 21:25:59
【问题描述】:
我使用 Set 来隔离 List 的唯一值(在这种情况下,我得到一组点):
Set<PVector> pointSet = new LinkedHashSet<PVector>(listToCull);
这将返回一组独特的点,但是对于 listToCull 中的每个项目,我想测试以下内容:如果有重复项,则剔除所有重复项。换句话说,我希望 pointSet 代表 listToCull 中已经唯一的项目集(pointSet 中的每个项目在 listToCull 中没有重复项)。关于如何实施的任何想法?
编辑 - 我认为我的第一个问题需要进一步澄清。下面是一些将执行我要求的代码,但我想知道是否有更快的方法。假设 listToCull 是具有重复项的 PVector 列表:
Set<PVector> pointSet = new LinkedHashSet<PVector>(listToCull);
List<PVector> uniqueItemsInListToCull = new ArrayList<PVector>();
for(PVector pt : pointSet){
int counter=0;
for(PVector ptCheck : listToCull){
if(pt==ptCheck){
counter++;
}
}
if(counter<2){
uniqueItemsInListToCull.add(pt);
}
}
uniqueItemsInListToCull 与 pointSet 不同。如果可能的话,我想在没有循环的情况下这样做。
【问题讨论】:
-
我很难理解你在问什么。如果您从列表中创建一个集合,它将在列表中生成一组不同的项目。你还要求什么?
-
如果我理解正确,您只想将那些唯一的项目放入集合中,或者等效地,从集合中排除列表中重复的对象。我说的对吗?
-
巴兰卡 - 是的!这就是我打算做的事情。
标签: java set set-theory