tvalue是我的数组列表,我想使用下面的代码来检索arraylist中的第一个最大值的索引,通过使用以下代码我得到了错误的值,这对我有什么帮助
int index = Colletions.max(tvalue);
if ((index + 1) > 10) {
data = data + "Node" + (index + 1);
} else if ((index + 1) <= 10) {
data = data + "Node-" + (index + 1) + " + ";
System.out.println((index + 1));
}
}
Collections.sort(tvalue);
int in = tvalue.indexOf(tvalue.get(tvalue.size() - 2));
System.out.println(tvalue.get(tvalue.size() - 2)); {
if (( in +1) > 10) {
data = data + "Node-" + (( in +1) - 10) + " + ";
System.out.println(( in +1) - 10);
} else if (( in +1) <= 10) {
data = data + "Node-" + ( in +1) + " + ";
System.out.println(( in +1));
}
}
int id = tvalue.indexOf(tvalue.get(tvalue.size() - 3));
System.out.println(tvalue.get(tvalue.size() - 3)); {
if ((id + 1) > 10) {
data = data + "Node-" + ((id + 1) - 10) + " + ";
System.out.println((id + 1) - 10);
} else if ((id + 1) <= 10) {
data = data + "Node-" + (id + 1) + " + ";
System.out.println((id + 1));
}
}
最佳答案
您可以在一行中使用流来完成此操作,请参见以下示例。
List<Integer> list = IntStream.range(1000, 2000).boxed().collect(Collectors.toList());
list.stream().sorted((v1,v2)->v2.compareTo(v1)).limit(3).map(v->list.indexOf(v)).forEach(i->System.out.println(i));
关于java - 如何获取数组列表中前三个最大值的索引,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/38887916/