nal*_*jin -2 java loops arraylist
如果scoreArray中对象的值小于scoreArray中的任何其他对象,我想删除该值.但是我不知道如何在循环中删除ArrayList对象.
ArrayList<Integer> scoreArray = new ArrayList<Integer>();
for (int k = 0; k < people ; k++) {
int compare = scoreArray.get(k);
for (int j = 0; j < people; j++) {
if(compare < scoreArray.get(j)){
//scoreArray.remove(k);
}
}
}
Run Code Online (Sandbox Code Playgroud)
找到最小元素,然后删除所有出现的内容:
int min = scoreArray.stream().min(Integer::compare).orElse(0);
scoreArray.removeAll(Collections.singletonList(min));
Run Code Online (Sandbox Code Playgroud)
这个解决方案比更紧凑更安全scoreArray.removeAll(Collections.min(scoreArray)),因为NoSuchElementException当scoreArray空的时候不会抛出.
如果只想删除第一次出现的最小值,那么写如下:
if (!scoreArray.isEmpty()) {
scoreArray.remove(scoreArray.stream().min(Integer::compare).get());
// alternatively: scoreArray.remove(Collections.min(scoreArray));
}
Run Code Online (Sandbox Code Playgroud)