开发者

java8的stream如何取max

目录
  • Java8的stream取max
  • java8 stream详解~聚合(max/min/count)
    • 「案例一:获取String集合中最长的元素。」
    • 「案例二:获取Integer集合中的最大值。」
    • 「案例三:获取员工工资最高的人。」
    • 「案例四:计算Integer集合中大于6的元素的个数。」
  • 总结

    java8的stream取max

    public static void main(String[] args) {
        编程List<Integer> list = Arrays.asList(1, 2, 3, 4, 5, 6);
        Integer max = list.stream().max((a, b) -> {
          if (a > b) {
            return 1;
          } else return -1;
        }).get();
    
        System.out.println(max);
      }

    注意点:这里判断大小是通过正负数和0值。 而不是直接写成

    if (a > b) {
    return a;
    } else return b;

    可以简化写法

    int max = li开发者_C开发st.stream().max((a, b) ->android; a > b ? 1 : -1).get();

    java8 stream详解~聚合(max/min/count)

    maxmincount这些字眼你一定不陌生,没错,在mysql中我们常用它们进行数据统http://www.devze.com计。

    Java stream中也引入了这些概念和用法,极大地方便了我们对集合、数组的数据统计工作。

    java8的stream如何取max

    「案例一:获取String集合中最长的元素。」

    public class StreamTest js{
     public static void main(String[] args) {
      List<String> list = Arrays.asList("adnm", "admmt", "pot", "xbangd", "weoujgsd");
     
      Optional<String> max = list.stream().max(Comparator.comparing(String::length));
      System.out.println("最长的字符串:" + max.get());
     }
    }

    「案例二:获取Integer集合中的最大值。」

    public class StreamTest {
     public static void main(String[] args) {
      List<Integer> list = Arrays.asList(7, 6, 9, 4, 11, 6);
     
      // 自然排序
      Optional<Integer> max = list.stream().max(Integer::compareTo);
      // 自定义排序
      Optional<Integer> max2 = list.stream().max(new Comparator<Integer>() {
       @Override
       public int compare(Integer o1, Integerwww.devze.com o2) {
        return o1.compareTo(o2);
       }
      });
      System.out.println("自然排序的最大值:" + max.get());
      System.out.println("自定义排序的最大值:" + max2.get());
     }
    }

    「案例三:获取员工工资最高的人。」

    public class StreamTest {
     public static void main(String[] args) {
      List<Person> personList = new ArrayList<Person>();
      personList.add(new Person("Tom", 8900, 23, "male", "New York"));
      personList.add(new Person("Jack", 7000, 25, "male", "Washington"));
      personList.add(new Person("Lily", 7800, 21, "female", "Washington"));
      personList.add(new Person("Anni", 8200, 24, "female", "New York"));
      personList.add(new Person("Owen", 9500, 25, "male", "New York"));
      personList.add(new Person("Alisa", 7900, 26, "female", "New York"));
     
      Optional<Person> max = personList.stream().max(Comparator.comparingInt(Person::getSalary));
      System.out.println("员工工资最大值:" + max.get().getSalary());
     }
    }

    「案例四:计算Integer集合中大于6的元素的个数。」

    import java.util.Arrays;
    import java.util.List;
     
    public class StreamTest {
     public static void main(String[] args) {
      List<Integer> list = Arrays.asList(7, 6, 4, 8, 2, 11, 9);
     
      long count = list.stream().filter(x -> x > 6).count();
      System.out.println("list中大于6的元素个数:" + count);
     }
    }

    总结

    以上为个人经验,希望能给大家一个参考,也希望大家多多支持我们。

    0

    上一篇:

    下一篇:

    精彩评论

    暂无评论...
    验证码 换一张
    取 消

    最新开发

    开发排行榜