我正在使用 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。如果可能的话,我想在没有循环的情况下做到这一点。