使用java stream获取arrayList中min size列表的索引
发布时间:2020-12-15 05:14:54 所属栏目:Java 来源:网络整理
导读:我有一个整数列表列表,如list1 =(1,2,3)和list2 =(0,1). 我的列表列表包含list1和list2.它可以包含更多但是对于示例我只采用了两个列表. 问题是使用java流获取最小大小的列表索引. 这是我的程序,它只使用for循环方法. import java.util.ArrayList;public cla
我有一个整数列表列表,如list1 =(1,2,3)和list2 =(0,1).
我的列表列表包含list1和list2.它可以包含更多但是对于示例我只采用了两个列表. 问题是使用java流获取最小大小的列表索引. 这是我的程序,它只使用for循环方法. import java.util.ArrayList; public class Example { public static void main( String[] args ) { ArrayList<Integer> list1 = new ArrayList<>(); list1.add(1);list1.add(2);list1.add(3); ArrayList<Integer> list2 = new ArrayList<>(); list2.add(0);list2.add(1); ArrayList<ArrayList<Integer>> listOLists = new ArrayList<>(); listOLists.add(list1); listOLists.add(list2); printTheIndexOfTheListWithTheMinSize(listOLists); } private static void printTheIndexOfTheListWithTheMinSize( ArrayList<ArrayList<Integer>> listOLists ) { int minSize = listOLists.get(0).size(); int minIndex = 0; int i=0; for ( ArrayList<Integer> list: listOLists ) { if (list.size()<minSize) { minSize = list.size(); minIndex=i; } i++; } System.out.println(minIndex); } } 能否请您使用Java流API向我提示如何做到这一点. 请注意,我在重度计算中多次调用此方法,因此awnser应该考虑到这一点. 解决方法
不是很优雅,因为它需要拳击和拆箱,但……
Optional<Integer> minIndex = IntStream.range(0,list.size()) .boxed() .min(Comparator.comparingInt(i -> list.get(i).size())); (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
推荐文章
站长推荐
热点阅读