学习使用查找最小和最大日期,数字,字符,字符串或对象。

Find Min or Max Date

要从日期流中获取最大或最小日期 ,可以使用Comparator.comparing( LocalDate::toEpochDay )比较器。 1970-01-01 。LocalDate start = LocalDate.now();

LocalDate end = LocalDate.now().plusMonths(1).with(TemporalAdjusters.lastDayOfMonth());

//Create stream of dates

List dates = Stream.iterate(start, date -> date.plusDays(1))

.limit(ChronoUnit.DAYS.between(start, end))

.collect(Collectors.toList());

// Get Min or Max Date

LocalDate maxDate = dates.stream()

.max( Comparator.comparing( LocalDate::toEpochDay ) )

.get();

LocalDate minDate = dates.stream()

.min( Comparator.comparing( LocalDate::toEpochDay ) )

.get();

System.out.println("maxDate = " + maxDate);

System.out.println("minDate = " + minDate);

Program Output.maxDate = 2017-10-30

minDate = 2017-09-13

使用上述程序从日期列表中查找最早的日期或最晚的日期。

Find Min or Max Number

要从数字流中找到最小和最大数字,请使用Comparator.comparing( Integer::valueOf )像比较器一样。 以下示例是整数流的示例。// Get Min or Max Number

Integer maxNumber = Stream.of(1, 2, 3, 4, 5, 6, 7, 8, 9)

.max(Comparator.comparing(Integer::valueOf))

.get();

Integer minNumber = Stream.of(1, 2, 3, 4, 5, 6, 7, 8, 9)

.min(Comparator.comparing(Integer::valueOf))

.get();

System.out.println("maxNumber = " + maxNumber);

System.out.println("minNumber = " + minNumber);

Program Output.

maxNumber = 9

minNumber = 1

Find Min or Max char or String

要从字符流中查找最小和最大字符串或字符 ,请像比较器一样使用Comparator.comparing( String::valueOf ) 。// Get Min or Max String/Char

String maxChar = Stream.of("H", "T", "D", "I", "J")

.max(Comparator.comparing(String::valueOf))

.get();

String minChar = Stream.of("H", "T", "D", "I", "J")

.min(Comparator.comparing(String::valueOf))

.get();

System.out.println("maxChar = " + maxChar);

System.out.println("minChar = " + minChar);

Program Output.maxChar = T

minChar = D

Find Min or Max Object by key

Object comparison创建自己的custom comparator 。 例如,如果我想从Employee对象流中获取最年轻的Employee ,那么我的比较器将类似于Comparator.comparing(Employee::getAge) 。 现在使用此比较器获取最大或最小员工对象。

Java程序可根据年龄查找最大或最小员工对象。List employees = new ArrayList();

employees.add(new Employee(1, "Lokesh", 36));

employees.add(new Employee(2, "Alex", 46));

employees.add(new Employee(3, "Brian", 52));

Comparator comparator = Comparator.comparing( Employee::getAge );

// Get Min or Max Object

Employee minObject = employees.stream().min(comparator).get();

Employee maxObject = employees.stream().max(comparator).get();

System.out.println("minObject = " + minObject);

System.out.println("maxObject = " + maxObject);

Program Output.minObject = Id:- 1 Name:- Lokesh Age:- 36

maxObject = Id:- 3 Name:- Brian Age:- 52

Employee对象是:class Employee {

private int id;

private String name;

private int age;

public Employee(int id, String name, int age) {

super();

this.id = id;

this.name = name;

this.age = age;

}

public int getId() {

return id;

}

public void setId(int id) {

this.id = id;

}

public String getName() {

return name;

}

public void setName(String name) {

this.name = name;

}

public int getAge() {

return age;

}

public void setAge(int age) {

this.age = age;

}

@Override

public String toString() {

StringBuilder str = null;

str = new StringBuilder();

str.append("Id:- " + getId() + " Name:- " + getName() + " Age:- " + getAge());

return str.toString();

}

}

在本教程中,我们学习了使用Java 8 lambda expression 从原始值流中查找最大值或最小值 。 我们还学会了查找最大或最小对象,例如max Date或字符串。

我们还学会了从对象流中按对象属性找到最大对象 。

在评论中把您的问题交给我。

java list find方法_Java 8 Stream - Find Max and Min from List - 入门小站-rumenz.com相关推荐

  1. java中collection方法_Java 8中的Collector toCollection()方法

    toCollection()Java中的Collector类的方法返回一个Collector,该Collector以遇到的顺序将输入元素累积到一个新的Collection中. 语法如下static & ...

  2. java的flush方法_Java中的BufferedWriter flush()方法及示例

    Java中buffered writer类的flush()方法用于刷新缓冲的writer流中的字符.语法:公共void flush()指定者:此方法由Flushable接口的flush()方法指定.重 ...

  3. java 可变参数方法_Java方法中的参数太多,第7部分:可变状态

    java 可变参数方法 在我的系列文章的第七篇中,有关解决Java方法或构造函数中过多参数的问题 ,我着眼于使用状态来减少传递参数的需要. 我等到本系列的第七篇文章来解决这个问题的原因之一是,它是我最 ...

  4. java的equals方法_Java Date equals()方法与示例

    java的equals方法 日期类equals()方法 (Date Class equals() method) equals() method is available in java.util p ...

  5. java的equals方法_Java LocalDateTime类| 带示例的equals()方法

    java的equals方法 LocalDateTime类equals()方法 (LocalDateTime Class equals() method) equals() method is avai ...

  6. java的equals方法_Java Vector equals()方法与示例

    java的equals方法 向量类的equals()方法 (Vector Class equals() method) equals() method is available in java.uti ...

  7. java的parse方法_Java即时类| parse()方法与示例

    java的parse方法 即时类parse()方法 (Instant Class parse() method) parse() method is available in java.time pa ...

  8. java的equals方法_Java Duration类| 带示例的equals()方法

    java的equals方法 持续时间类equals()方法 (Duration Class equals() method) equals() method is available in java. ...

  9. java中clone方法_Java Object clone()方法– Java中的克隆

    java中clone方法 Cloning is the process of creating a copy of an Object. Java Object class comes with na ...

最新文章

  1. 条件限制select into_SQL全部知识点(夺回控制台掌控权,转义符,SELECT特定列,AND,OR,查询数值,比较运算)...
  2. Syslinux引导文件名与菜单解释
  3. PyTorch基础-softmax函数mnist数据集识别-03
  4. 在数据库中outlet、code、outline为联合组件。hibarnate插入可如此插入
  5. debian8安装Odoo中的Barcode Scanner Hardware Driver模块时,提示没有evdev
  6. nignx解决vue部署服务器刷新页面出现404问题
  7. STM32之端口复用与重映射
  8. form图片上传遇到错误
  9. [Linux] 解决Ubuntu12.10 64位google chrome安装Flash后出现couldn‘t load plug-in的问题;
  10. python绘制立体扇形_你不知道的4种方法:python方法绘制扇形
  11. Delphi--“Range check error“ 错误解决方案之一
  12. win10,win11内存占用过高
  13. 3.实现蛇和基本游戏界面
  14. Google IO 2022——CSS 状态
  15. FPGA结构分析——IDELAY2,网口储备点3
  16. 类继承和依赖注入的关系_管理类依赖关系:依赖关系注入,服务定位符和工厂简介,第1部分...
  17. 关于生僻字乱码的问题
  18. win10无法装载iso文件_Win10系统怎么安装iso镜像文件 Win10系统安装iso镜像文件方法...
  19. arcgis数据的M/Z值设置问题
  20. 晕菜~~~竟然出了这样的事情~~

热门文章

  1. 【Linux使用】Centos 7 GRUB与内核版本切换
  2. 地图点随机分布均匀_英国标准协会(BSI)推荐的三坐标测点分布策略
  3. java平面内有n个矩形_JAVA 相交矩形面积  平面上有两个矩形,它们的边平行于直角坐标系的X轴或Y轴.对于每个矩形,我们给出它的一对相对顶点...
  4. UE4如何解析命令行参数
  5. iPhone 6S三大性能实测
  6. 机器学习的概念性的总结
  7. 一对一培训之视频免费分享-2017-12-09-第 03 阶段-准备-基础-架构-课件
  8. brew 基本使用方法
  9. ERROR 1372 (HY000): Password hash should be a 41-digit hexadecimal number;
  10. 总结:常用的通用数据处理指令