实现获取List集合中的最大值和最小值共有以下两种方式,根据自己的场景选择合适的方法。

目录

Collections

1、String、Integer、Double类型

2、对象类型

排序

1、Integer类型

2、 基本排序方式:


  • Collections

1、String、Integer、Double类型

当List中元素为String、Integer、Double类型时,可以使用Collections类中的 max 和 min 方法直接获取最大值和最小值;

public static void main(String[] args) {
        List<String> stringList = new ArrayList<>();
        stringList.add("10");
        stringList.add("34");
        stringList.add("67");
        stringList.add("84");
        stringList.add("1");
        System.out.println("(String类型)最大值=" + Collections.max(stringList));
        System.out.println("(String类型)最小值=" + Collections.min(stringList));

        List<Integer> integerList = new ArrayList<>();
        integerList.add(5);
        integerList.add(38);
        integerList.add(52);
        integerList.add(88);
        integerList.add(100);
        System.out.println("(Integer类型)最大值=" + Collections.max(integerList));
        System.out.println("(Integer类型)最小值=" + Collections.min(integerList));

        List<Double> doubleList = new ArrayList<>();
        doubleList.add(1.5);
        doubleList.add(45.6);
        doubleList.add(88.08);
        doubleList.add(55.2);
        doubleList.add(100.01);
        System.out.println("(Double类型)最大值=" + Collections.max(doubleList));
        System.out.println("(Double类型)最小值=" + Collections.min(doubleList));
    }

注意:当List元素因为类型为String时,可能会出现以下问题;

  • 当最大值为10或10的倍数时不生效,为最小值时生效;
  • 当元素数据全部为10或10的倍数时,最大值和最小值均生效;

2、对象类型

当List中元素为对象时,比如想要获取年龄最大和最小人的信息;

  • 排序

1、Integer类型

当List元素类型为Integer时可以使用排序,比如使用冒泡排序将List元素按照从大到小排序,然后取List的第一个和最后一个元素获取最大值和最小值;

2、 基本排序方式:

冒泡排序_想养一只!的博客-CSDN博客主要就是利用两个for循环,然后前一个元素与后一个元素进行大小比较,如果前一个元素比后一个元素大的话,那么就交换他们的位置,逐个比较完所有的元素即可。public static void main(String[] args) {int arr[] = {1,4,9,2,8,3,0};System.out.println("排序之前的数组顺序为:");for(int a : a...https://blog.csdn.net/weixin_45151960/article/details/104761269选择排序_排序算法在大量的元素当中选出几个元素_想养一只!的博客-CSDN博客概念:选择排序也属于内部排序法,是从欲排序的数据中,按指定的规则选出来某一个元素,再依规定交换位置后达到排序的目的。思想:基本思想是:弟一次从arr[0] ~ arr[n-1]中选取最小值,与arr[0]交换,弟二次从arr[1] ~ arr[n-1]中选取最小值,与arr[1]交换,弟三次从arr[2] ~ arr[n-1]中选取最小值,与arr[2]交换,… ,弟i次从arr[i-1] ...https://blog.csdn.net/weixin_45151960/article/details/104762648插入排序法(思路及代码实现)_想养一只!的博客-CSDN博客插入排序法思想:插入排序的基本思想是:把n个待排序的元素看成一个有序表和一个无序表,开始时有序表只包含一个元素,无序表中包含有n-1个元素,排序过程中每次从无序表中取出第一个元素,把它的排序码依次与有序表元素的排序码进行比较,将它插入到有序表中的适当位置,使之成为新的有序表。下图中的初始状态时,17就为有序表中的一个元素,剩下的元素都包含在无序表中,然后取数据3与17进行比较,然后插入到合适的...https://blog.csdn.net/weixin_45151960/article/details/104911052快速排序法(思想及代码实现)_想养一只!的博客-CSDN博客快速排序思想:快速排序是对冒泡排序的一种改进,基本思想是:通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对着两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列。下图所示的是按照最后一个数据作为中间数,然后将整个数组分割成两个部分,代码所示的内容是取数据的中间数作为分界,然后分割成两部分。pub...https://blog.csdn.net/weixin_45151960/article/details/104913035

Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐