zoukankan      html  css  js  c++  java
  • Java 8 新特性练习

    package com.nokia.business.process.service.impl;
    
    import lombok.Data;
    
    import java.util.*;
    import java.util.concurrent.ConcurrentHashMap;
    import java.util.function.Function;
    import java.util.function.Predicate;
    import java.util.stream.Collectors;
    
    public class Test {
        public static void main(String[] args) {
            Map<String, String> map = new HashMap<String,String>();
            map.put("1","name");
            map.put("2","name2");
            map.put("3","name3");
    
            //将map的Key加入一个list
            List<String> keyList = map.entrySet().stream().map(v -> v.getKey()).collect(Collectors.toList());
            //System.out.println(keyList);
    
            //将map的value加入一个list
            List<String> valueList = map.entrySet().stream().map(v -> v.getValue()).collect(Collectors.toList());
            //System.out.println(valueList);
    
            List<Employee> emps = Arrays.asList(
                    new Employee("张三", 18, 6666.66),
                    new Employee("李四", 20, 7777.77),
                    new Employee("王五", 36, 8888.88),
                    new Employee("田七", 55, 11111.11),
                    new Employee("赵六", 55, 9999.99),
                    new Employee("赵六", 55, 9999.99),
                    new Employee("赵六", 45, 12222.22));
    
            //1.过滤掉年龄小于25的员工
            //emps.stream().filter((e) -> e.getAge() > 25).forEach(System.out::println);
            //2.过滤掉姓名重复的员工
            //emps.stream().distinct().forEach(System.out::println);
    
            emps.stream().filter(distinctByKey((p) -> (p.getName())))
                    .collect(Collectors.toList()).forEach(System.out::println);
    
    
        }
    
    
        public static <T> Predicate<T> distinctByKey(Function<? super T, Object> keyExtractor) {
            Map<Object, Boolean> seen = new ConcurrentHashMap<>();
            return t -> seen.putIfAbsent(keyExtractor.apply(t), Boolean.TRUE) == null;
        }
    
    
        @Data
        static class Employee{
            private String name;
            private int age;
            private double sales;
    
            public Employee(String name, int age, double sales) {
                this.name = name;
                this.age  = age;
                this.sales = sales;
            }
        }
    }
  • 相关阅读:
    jvm垃圾回收机制
    java中transient关键字的含义
    com.alipay.sofa.rpc.core.exception.SofaRouteException: RPC-02306: 没有获得服务[io.sofastack.balance.manage.facade.BalanceMngFacade:1.0:user77]的调用地址,请检查服务是否已经推送
    IDEA失效的解决办法
    多线程
    Java对象的创建过程
    注解(Annotation)
    面向对象思想
    IDEA--java版本修改(jdk1.8改成jdk1.7)
    HttpClient
  • 原文地址:https://www.cnblogs.com/chuyuan/p/13306783.html
Copyright © 2011-2022 走看看