给定以下代码:
public static int countSames(Object[] a) {
int count = 0;
for (int i = 0; i < a.length; i++) {
for (int k = 0; k < a.length; k++) {
if (a[i].equals(a[k]) && i != k) {
count += 1;
break; //Preventing from counting duplicate times, is there way to replace this?
}
}
}
return count;
}
我想知道是否有一个解决方案不使用break语句,因为我听过它的坏习惯。但是如果没有中断符,这个方法返回6而不是数组{x','x','x}想要的3。
3条答案
按热度按时间368yc8dk1#
如果您试图在数组中找到唯一元素的数量,请尝试使用这种方法,因为它只有一个循环,因此效率很高。
如果我不清楚你的要求,请告诉我。
qqrboqgw2#
你可以用旗子代替
break
:63lcw9qa3#
可以使用hashmap在数组中查找相同的元素并防止重复计数。
}