我有一个包含数字Wish[] list = {1,2,2};
的数组,现在我想检查它是否有一个唯一的元素..
我想出了一个for循环,但它不起作用:
`
public Wish nextUniqueWish() {
Wish isUnique = null;
for (int j = 0; j < list.length; j++) {
for (int k = j+1;k<list.length;k++) {
if (list[k]==list[j]) {
isUnique = list[j];
}
}
}
return isUnique;
}
答案 0 :(得分:1)
你写得很好,但你需要改变它。
如果list[k]==list[j]
那么它不是唯一的,那么它应该是:
Wish isUnique = new Wish("me",-1);
for (int j = 0; j < list.length; j++)
if (!ArrayUtils.contains(list, list[j]))
Wish.setId(j);
更新
你评论我猜
class Wish{
int wishId;
String owner;
Wunsch(String owner, int wishId){
this.owner = owner;
this.wishId = wishId;
}
set(int uniqId){ // setter for id
this.id=uniqId;
}
}
答案 1 :(得分:0)
您可以使用它来打印数组中的所有唯一值(credit):
Arrays.stream(list).boxed().collect(Collectors.groupingBy(p -> p, Collectors.counting()))
.entrySet().stream().filter(t -> t.getValue() < 2)
.forEach(key -> System.out.println(key.getKey()));