use*_*868 4 java loops arraylist
基本上,如果我有一个ArrayList<Integer>contains <0, 1, 5, 5, 4, 2>,我需要为索引创建一个单独ArrayList的<2, 3>。
我了解如何获得最大数字第一次出现的索引,但我不知道如何同时获得所有这些。
我原本是这么想的:
int highest = 0;
for (int b = 0; b < arrlst.size(); b++) {
int p = arrlst.get(b);
if (highest <= p) {
highest = p;
highestindex.add(b);
}
}
Run Code Online (Sandbox Code Playgroud)
但后来我意识到这会自动添加第一个,以及任何高于当前最大值的,即使它们不是整体最大值。
然后我highestindex.add(...)想把这个部分放在循环之外,但它只会添加最后一个索引而不是全部。
我会去添加和清除 a List<Integer>:
public ArrayList<Integer> getIndexesOfHighestNum(List<Integer> list) {
List<Integer> indexes = new ArrayList<Integer>();
int highest = Integer.MIN_VALUE;
for (int i = 0; i < list.size(); i++) {
int value = list.get(i);
if (value > highest) {
indexes.clear();
indexes.add(i);
highest = value;
} else if (value == highest)
indexes.add(i);
}
return indexes;
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
101 次 |
| 最近记录: |