java8 常用代码具体展示

简介: java8 常用代码具体展示
  1. 使用java8 提取出 list 中 bean 的某一属性
    public static void main(String[] args) {

     List<Student> stuList = new ArrayList<Student>();
     Student st1 = new Student("123","aaa");
     Student st2 = new Student("234","bbb");
     Student st3 = new Student("345","ccc");
     Student st4 = new Student("345","ccc");
     stuList.add(st1);
     stuList.add(st2);
     stuList.add(st3);
     stuList.add(st4);
     //1.提取出list对象中的一个属性
     List<String> stIdList1 = stuList.stream()
             .map(Student::getId)
             .collect(Collectors.toList());
     stIdList1.forEach(s -> System.out.print(s+" "));
     System.out.println();
     System.out.println("----------");
    
     //2.提取出list对象中的一个属性并去重
     List<String> stIdList2 = stuList.stream()
             .map(Student::getId).distinct()
             .collect(Collectors.toList());
     stIdList2.forEach(s -> System.out.print(s+" "));
     /*    结果:
         123 234 345 345  
         ----------
         123 234 345 
     */
    

    }
    //代码效果参考:http://0791zd.com/zx/art_5098.html

  2. java8 中根据判断删除列表list中的元素
    我们知道,在java8出lambda表达式之前,是不支持在循环中直接对list进行删除的。但是java8的新特性lambda表达式,帮我们实现了这个功能:

List lists = new ArrayList<>();
lists.add("a");
lists.add("b");
lists.add("c");

//使用removeIf方法,->里的是判断条件,如果符合这个条件就删除。这里会删除带有c的元素
lists.removeIf(s -> s.contains("c"));
java8新特性大大的简化了我们的代码,使用更加的方便。

  1. java8 获取 lsit 中bean 的某一属性最大的对象
    Student student = studentList.stream().max(Comparator.comparing(Student::getClassCount)).get();
  2. java8 计算代码运行时间
    java8之前是这样计算代码运行时间的

long startTime=System.currentTimeMillis(); //获取开始时间
doSomeThing(); //测试的代码段
long endTime=System.currentTimeMillis(); //获取结束时间
System.out.println("程序运行时间: "+(end-start)+"ms");
java8之后可以使用Instant获取时间戳来计算代码运行时间
//代码效果参考:http://0791zd.com/zx/art_7718.html

public static void main(String[] args) {
  Instant start = Instant.now();

  LongStream.rangeClosed( 0,110 )
  //并行流
  .parallel()
  .reduce( 0,Long::sum );

  LongStream.rangeClosed( 0,110 )
  //顺序流
  .sequential()
  .reduce( 0,Long::sum );

  Instant end = Instant.now();
  System.out.println("耗费时间"+ Duration.between( start,end ).toMillis());

}

相关文章
|
1天前
|
Java jenkins 持续交付
Jenkins是开源CI/CD工具,用于自动化Java项目构建、测试和部署。通过配置源码管理、构建触发器、执行Maven目标,实现代码提交即触发构建和测试
【7月更文挑战第1天】Jenkins是开源CI/CD工具,用于自动化Java项目构建、测试和部署。通过配置源码管理、构建触发器、执行Maven目标,实现代码提交即触发构建和测试。成功后,Jenkins执行部署任务,发布到服务器或云环境。使用Jenkins能提升效率,保证软件质量,加速上线,并需维护其稳定运行。
11 0
|
1天前
|
存储 安全 Java
JAVA反射技术:让你像“黑客”一样操控代码
【7月更文挑战第1天】JAVA反射技术让开发者能动态操控代码,如在运行时检查类、接口、字段和方法,以及动态创建对象。在一个企业级应用案例中,通过反射,实现了动态加载和卸载请求处理模块,避免了传统方式下需重启应用的不便。`ReflectionBasedDispatcher`类使用反射注册并管理`RequestHandler`实现类,提高了代码灵活性和应对变化的能力,展现了反射技术的强大和实用性。
|
1天前
|
安全 Java 数据安全/隐私保护
JAVA反射:你的代码“活”了吗?
【7月更文挑战第1天】Java反射是运行时动态代码操作,允许访问和修改类、属性及方法。它提供动态加载类、按需调用方法、修改私有属性及创建泛型实例的能力。使用反射需注意性能损耗、安全风险和代码可读性降低。示例展示了通过`Class.forName()`加载类,`getDeclaredConstructor().newInstance()`创建对象,`getMethod().invoke()`调用方法的过程。在性能敏感和安全关键的项目中使用时需谨慎。
|
1天前
|
存储 SQL 安全
提升Java代码安全性的建议
提升Java代码安全性的建议
|
1天前
|
Java 索引
Java实现扑克牌游戏 | 随机发牌 ( 过程拆分详解+完整代码 )
Java实现扑克牌游戏 | 随机发牌 ( 过程拆分详解+完整代码 )
|
2天前
|
XML 小程序 Java
java小程序代码详细展示
java小程序代码详细展示
|
2天前
|
Java 数据库连接
惊呆了!JAVA反射:你的代码竟然能这样“自我修复”?
【6月更文挑战第30天】Java反射允许运行时访问类和方法,模拟“自我修复”能力。当UserService的getUserById方法抛出异常时,通过反射捕获异常并调用handleException进行处理。此示例展示了如何记录错误,返回默认用户对象,而无需原始代码更改。反射提供了一种动态异常处理机制,增强代码的适应性和弹性。
|
3天前
|
Java Spring
JAVA注解:传统与现代的完美结合,你的代码值得拥有!
【6月更文挑战第29天】Java注解,作为连接传统与现代的编程工具,简化企业级应用开发,提升代码可读性和维护性。通过自定义注解如`@Loggable`,可以将行为(如日志记录)与方法实现分离,减少模板代码。使用AOP(如Spring)处理注解,实现行为拦截,增强代码灵活性和可扩展性。拥抱Java注解,让代码更现代、更高效!
28 16
|
3天前
|
IDE Java 数据库连接
JAVA注解:元数据,代码的“身份证”?!
【6月更文挑战第29天】Java注解,作为代码的“身份证”,提供元数据,用于编译时检查、自动生成代码和框架集成。例如,@Override确保方法重写正确,@Deprecated标记过时,@Autowired在Spring中实现依赖注入。Lombok的@Getter/@Setter简化getter/setter。注解提升代码质量和效率,是现代Java开发的关键实践。
7 0
|
3天前
|
IDE Java 编译器
JAVA注解,你的代码需要的一次“心灵按摩”!
【6月更文挑战第29天】Java注解是提升代码可维护性的关键,它们是编译器和IDE理解代码意图的特殊标记,不同于仅作解释的注释。注解可用于编译时检查(如@Override、@NotNull)、自动生成代码(Lombok的@Getter、@Setter)、框架集成(Spring的@Autowired、MyBatis的@Mapper)。通过注解,代码变得更简洁、功能更强大,为项目带来效率提升。尝试使用注解,赋予代码新生命!
21 12