Java List集合中嵌套了List集合,进行比大小,标0跟下标0的比较

Java List集合中嵌套了List集合,进行比大小,标0跟下标0的比较@TOC

Java List集合中嵌套了List集合,进行比大小,标0跟下标0的比较

在这里插入图片描述


之前很是苦恼这种格式的数据这么进行比较大小,下标0跟下标0的比较,下标1跟下标1的比较,终于问了个大佬,大佬不到5分钟就给我解决了这个小问题,大家都是人,为啥我这脑子就想不出来呢!!!

下面展示代码,前提,list中每个元素的元素个数相同。

public static void main(String[] args) {
        List<List> lists = new ArrayList<>();
        List list1 = new ArrayList();
        list1.add(1.1);
        list1.add(2.2);
        list1.add(3.3);

        List list2 = new ArrayList();
        list2.add(5.0);
        list2.add(7.0);
        list2.add(2.1);

        List list3 = new ArrayList();
        list3.add(11.0);
        list3.add(16.0);
        list3.add(13.0);

        lists.add(list1);
        lists.add(list2);
        lists.add(list3);
		
		// 前提,list中每个元素的元素个数相同
       	// 最外层的list不是可能有很多个内部的list,
        // 你这里是内部的所有list中的元素 个数都相同,那么就想到循环比较就行了
        // 第一层循环就直接用内部list的元素个数当作控制,因为元素个数每个list都相同,这里就取第一个
        for (int i = 0; i < lists.get(0).size(); i++) {

            // 因为要获取最大值和最小值,这里 先把要获取的两个变量列出来
            // 因为后面涉及到Double的比较大小,担心丢失精度的问题,这里用BigDecimal来比较
            // 将最小值一开始设为Integer的最大值,一般来说,元素中的数值大小也不会大于这个数吧
            // 将最大值一开始设为Integer的最小值,一般来说,元素中的数值大小也不会小于这个数吧
            BigDecimal min = new BigDecimal(Integer.MAX_VALUE);
            BigDecimal max = new BigDecimal(Integer.MIN_VALUE);

            // 循环比较
            // 最外层list根据元素个数进行循环
            for (List list : lists) {
                // 获取每个list的的元素,外部的循环i刚好可以控制获取内部list的第i的元素
                BigDecimal temp = BigDecimal.valueOf((Double) list.get(i));
                // 比较,将较小的值赋给min
                if (min.compareto(temp) > 0) {
                    min = temp;
                }
                // 比较,将较大的值赋给max
                if (max.compareto(temp) < 0) {
                    max = temp;
                }
            }
            // 获得第i个的最大值,最小值
            System.out.println(max);
            System.out.println(min);
        }
     }

相关文章

显卡天梯图2024最新版,显卡是电脑进行图形处理的重要设备,...
初始化电脑时出现问题怎么办,可以使用win系统的安装介质,连...
todesk远程开机怎么设置,两台电脑要在同一局域网内,然后需...
油猴谷歌插件怎么安装,可以通过谷歌应用商店进行安装,需要...
虚拟内存这个名词想必很多人都听说过,我们在使用电脑的时候...
win11本地账户怎么改名?win11很多操作都变了样,用户如果想要...