java中对list求取最大最小值的同时,获取到最大/小值在list中的索引值

时间:2021-02-07 21:24:55
在list中使用了Collections.min(list)获取到了最小值,但是我同时也希望得到最小值在list中的索引值。
最好不要遍历list获取索引值。
还肯前辈们赐教。拜托。

5 个解决方案

#1


Collections.min()的底层实现就已经迭代了一次集合了,你要找出这个索引肯定还是要遍历集合的。所以你可以自己写一个迭代,同时找出数据和索引。

#2


引用 1 楼 qq_33793432 的回复:
Collections.min()的底层实现就已经迭代了一次集合了,你要找出这个索引肯定还是要遍历集合的。所以你可以自己写一个迭代,同时找出数据和索引。
欸,我想能够直接调用java类库中提供的什么就获取到的。(。・∀・)ノ゙嗨呀,好麻烦。

#3


这种场景在数据是乱序的情况下,自己写循环是最快速的。

#4


引用 3 楼 zssazrael 的回复:
这种场景在数据是乱序的情况下,自己写循环是最快速的。
好的,谢谢啦。

#5


List<Integer> numList = new ArrayList<Integer>();
numList.add(12);
numList.add(33);
numList.add(11);
numList.add(55);
numList.add(66);

int maxNum = Collections.max(numList);
int minNum = Collections.min(numList);

System.out.println("最大值:"+maxNum+" 索引:" + numList.indexOf(maxNum));
System.out.println("最小值:"+minNum+" 索引:" + numList.indexOf(minNum));

#1


Collections.min()的底层实现就已经迭代了一次集合了,你要找出这个索引肯定还是要遍历集合的。所以你可以自己写一个迭代,同时找出数据和索引。

#2


引用 1 楼 qq_33793432 的回复:
Collections.min()的底层实现就已经迭代了一次集合了,你要找出这个索引肯定还是要遍历集合的。所以你可以自己写一个迭代,同时找出数据和索引。
欸,我想能够直接调用java类库中提供的什么就获取到的。(。・∀・)ノ゙嗨呀,好麻烦。

#3


这种场景在数据是乱序的情况下,自己写循环是最快速的。

#4


引用 3 楼 zssazrael 的回复:
这种场景在数据是乱序的情况下,自己写循环是最快速的。
好的,谢谢啦。

#5


List<Integer> numList = new ArrayList<Integer>();
numList.add(12);
numList.add(33);
numList.add(11);
numList.add(55);
numList.add(66);

int maxNum = Collections.max(numList);
int minNum = Collections.min(numList);

System.out.println("最大值:"+maxNum+" 索引:" + numList.indexOf(maxNum));
System.out.println("最小值:"+minNum+" 索引:" + numList.indexOf(minNum));