我想檢查所有其他值的ArrayList中的所有值,刪除一個,如果他們太接近的價值。這裏有一個例子:迭代ArrayList並檢查所有其他元素
// make an ArrayList of random numbers
ArrayList<Integer> nums = new ArrayList<Integer>();
for (int i=0; i<25; i++) {
int rand = int(random(255));
nums.add(rand);
println(rand);
}
// go through all numbers and compare
// (loop backwards to prevent ConcurrentModificationException)
for (int i = nums.size()-1; i >= 0; i--) {
int current = nums.get(i);
println("Current #: " + current);
// how to do this?
// not sure if there's a faster way that
// would avoid running through the entire
// ArrayList for every element...
for (Integer other : nums) {
if (abs(current - other) < 5) {
nums.remove(current);
}
}
}
尋找最乾淨和最有效的方式來做到這一點。
[編輯爲清晰起見]
有什麼理由不與當前解決方案的工作?我看到的唯一選項是首先對ArrayList進行排序。 – RoflcoptrException
爲什麼你要捕捉'Exception',什麼讓你覺得它總是因爲物品是一樣的? (提示:看看例外情況 - 您可能會感到驚訝......) –
結果爲何「不滿意」?發生了什麼,你不喜歡? –