jdk1.8特性2

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
public class User {
    private Long id;
    private String userName;
    private String roleName;
    private String password;
    private Integer age;
    private Integer gender;
    private String nickName;
    private Double salary;
    private StatsType Type;
     
    /**
     *
     * @param id
     * @param userName
     * @param roleName
     * @param password
     * @param age
     * @param gender
     * @param nickName
     * @param salary
     * @param Type
     */
    public User(Long id,String userName,String roleName,String password,Integer age,Integer gender,String nickName,Double salary,StatsType Type) {
        this.id = id;
        this.userName = userName;
        this.roleName = roleName;
        this.password = password;
        this.age = age;
        this.gender = gender;
        this.nickName = nickName;
        this.salary = salary;
        this.Type = Type;
    }
 
    /**
     * 分段类型
     */
    public static enum StatsType {
 
        OFFLINE((short) 0), NOTWORK((short) 1), WORKING((short) 2);
 
        private short value;
 
        private StatsType(short value) {
            this.value = value;
        }
 
        public void setValue(short value) {
            this.value = value;
        }
 
        public short getValue() {
            return value;
        }
 
        public static StatsType valueOf(Short value) {
 
            if (value == null) {
                return null;
            }
 
            switch (value) {
            case 0:
                return OFFLINE;// 缺勤
            case 1:
                return NOTWORK;// 闲置
            case 2:
                return WORKING;// 工作
            }
            return null;
        }
    }
 
    get,set.....
 
}

  

1
2
3
4
5
List<User> list2 = Lists.newArrayList(
                new User(1L,"sa","职员","***",18,0,"张三",13242.69,User.StatsType.NOTWORK),
                new User(2L,"yunying","职员","***",30,1,"李四",12746.36,User.StatsType.WORKING),
                new User(3L,"ta","经理","***",50,0,"王五",15312.98,User.StatsType.OFFLINE)
                );

  取出对象中某个属性值

1
2
3
private static List<String> getUserName(List<User> list) {
return list.stream().map(User::getUserName).collect(Collectors.toList());
}

  List<User> 分组(根据性别)

1
2
3
private static Map<Integer, List<User>> getGroupMapByGender(List<User> userList) {
return userList.stream().collect(Collectors.groupingBy(User::getGender));
}

  

1
2
3
4
Map<Integer, List<User>> map = getGroupMapByGender(list2);
        for (Integer key : map.keySet()) {
            System.out.println(key + "---" + JSONArray.toJSONString((List<User>) map.get(key)));
        }

  求两个数组的交集

1
2
3
4
String str = "a,b,c,d,e";
String str1 = "a,b,c,d,e,f,g";
List<String> list = Arrays.asList(str.split(","));
List<String> list1 = Arrays.asList(str1.split(","));

  

1
2
3
private static List<String> getMixList(List<String> orgList, List<String> deskList) {
        return orgList.stream().filter(t -> deskList.contains(t)).collect(Collectors.toList());
    }

  对map的value进行排序

1
2
3
4
Map<String, Integer> mapData = new HashMap<>();
mapData.put("aa", 20);
mapData.put("bb", 7);
mapData.put("cc", 10);

  

1
2
3
4
private static Map<String, Integer> sortOrderByMapValue(Map<String, Integer> map) {
        return map.entrySet().stream().sorted(Map.Entry.<String, Integer> comparingByValue())
                .collect(Collectors.toMap(k -> k.getKey(), v -> v.getValue(), (k, v) -> k, LinkedHashMap::new));
    }

  List转Map(抽取某一属性做value)

1
2
3
private static Map<String, String> getList2Map(List<User> list) {
return list.stream().collect(Collectors.toMap(User::getUserName, User::getNickName));
}

  

     List转Map(value为对象本身)

1
2
3
4
private static Map<String, User> getList2Map2(List<User> list) {
        return list.stream()
                .collect(Collectors.toMap(User::getUserName, User -> User, (key1, key2) -> key2, LinkedHashMap::new));
    }

  数组中某属性最大值

1
2
3
private static Optional<User> getMaxAgeByList(List<User> list) {
        return list.stream().max((e1, e2) -> Integer.compare(e1.getAge(), e2.getAge()));
    }

  

 分组查询职员数量

1
2
3
Map<String,Long> map5 = list2.stream()
                .collect(Collectors.groupingBy(User::getRoleName,Collectors.counting()));
        System.out.println(map5);

  数组中返回的第一个元素

1
2
3
private static Optional<User> getFirstValueByList(List<User> list) {
        return list.stream().findFirst();
    }

  数组中属性是否有某值(是否所有人都没在工作)

1
2
3
private static boolean isHasNoneValueByList(List<User> list) {
        return list.stream().noneMatch((e) -> e.getType().equals(User.StatsType.WORKING));
    }

  数组中属性是否有某值(是否所有人都在工作)

1
2
3
private static boolean isHasAllValueByList(List<User> list) {
        return list.stream().allMatch((e) -> e.getType().equals(User.StatsType.WORKING));
    }

  数组中属性是否有某值(是否有人没来)

1
2
3
private static boolean isHasAnyValueByList(List<User> list) {
return list.stream().anyMatch((e) -> e.getType().equals(User.StatsType.OFFLINE));
}

  数组中某属性最小值

1
2
3
4
5
private static Optional<User> getMinAgeByList(List<User> list2) {
        return list2.stream().min((e1, e2) -> Integer.compare(e1.getAge(), e2.getAge()));
    }
 
System.out.println(user4.get().getAge());

  

posted @   蔡徐坤1987  阅读(283)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
点击右上角即可分享
微信分享提示