Java8-Map

1、Staff实体

public class Staff {

    private String name;

    private int age;

    private String address;

    public Staff() {
    }

    public Staff(String name, int age, String address) {
        this.name = name;
        this.age = age;
        this.address = address;
    }

    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;
    }

    public String getAddress() {
        return address;
    }

    public void setAddress(String address) {
        this.address = address;
    }

    @Override
    public String toString() {
        return "Staff{" +
                "name=‘" + name + ‘\‘‘ +
                ", age=" + age +
                ", address=‘" + address + ‘\‘‘ +
                ‘}‘;
    }
}

2、将字符串列表转换为大写

public class TextJava8Map1 {

    public static void main(String[] args) {

        List<String> alpha = Arrays.asList("a", "b", "c", "d");
        // 在Java8之前
        List<String> alphaUpper = new ArrayList<>();
        for (String s :alpha) {
            alphaUpper.add(s.toUpperCase());
        }
        System.out.println(alpha);
        System.out.println(alphaUpper);

        // Java8 map
        List<String> collect1 = alpha.stream()
                .map(String::toUpperCase)
                .collect(Collectors.toList());
        System.out.println(collect1);
    }
}

3、获取List对象列表中某个属性的集合(Developer在博客-Java8比较器)

public class TextJava8Map2 {

    public static void main(String[] args) {

        List<Developer> developers = Arrays.asList(
                new Developer("java", new BigDecimal(23231), 32),
                new Developer("c++", new BigDecimal(32432), 30),
                new Developer("spring", new BigDecimal(23121), 34)

        );
        // 在Java8之前
        List<String> names1 = new ArrayList<>();
        for (Developer developer : developers) {
            names1.add(developer.getName());
        }
        System.out.println(names1);

        // Java8 map
        List<String> names2 = developers.stream()
                .map(developer -> developer.getName())
                .collect(Collectors.toList());
        System.out.println(names2);

    }
}

4、将一个List对象列表转换为另一个List对象列表

public class TextJava8Map3 {

    public static void main(String[] args) {

        List<Developer> developers = Arrays.asList(
                new Developer("java", new BigDecimal(23231), 32),
                new Developer("c++", new BigDecimal(32432), 30),
                new Developer("spring", new BigDecimal(23121), 34)

        );
        // 在Java8之前
        List<Staff> staffs = convertToStaff(developers);
        System.out.println(staffs);

        // Java8 map
        List<Staff> result = developers.stream()
                .map(developer -> {
                    Staff staff = new Staff();
                    staff.setName(developer.getName());
                    staff.setAge(developer.getAge());
                    if ("c++".equals(developer.getName())) {
                        staff.setAddress("us");
                    }
                    return staff;
                })
                .collect(Collectors.toList());
        System.out.println(result);
    }

    private static List<Staff> convertToStaff(List<Developer> developers) {

        List<Staff> staffs = new ArrayList<>();
        for (Developer developer :developers) {
            Staff staff = new Staff();
            staff.setName(developer.getName());
            staff.setAge(developer.getAge());
            if ("java".equals(developer.getName())) {
                staff.setAddress("us");
            }
            staffs.add(staff);
        }

        return staffs;
    }
}

原文地址:https://www.cnblogs.com/fengkunangel/p/10428653.html

时间: 2024-10-15 03:32:59

Java8-Map的相关文章

译文:Java8 Map Enhancement

此篇为Jooq官方博客的一篇译文,特此声明. Java 8 的好处: Map Enhancements 此次增强的 大部分API实际上是 新的Streams API的一部分.但是一些新的特性同样加入到 java.util.List 之中 并且最重要的是对 java.util.Map 的增强. 为了保证向后兼容, 所有被加入到Interface中的方法皆为默认方法.因此我们在使用过程中会有一些意外的小惊喜. compute() methods 过去,我们常获取一个map集合的view,在view上

java8 Map的一些简单使用

private static Map<String, Integer> newMap = new HashMap<String, Integer>(); public static void main(String[] args) { newMap.put("hadoop", 100); newMap.put("spark", 50); newMap.put("java", 80); newMap.put("my

【java代码之美】---Java8 Map中的computeIfAbsent方法

Map中的computeIfAbsent方法 Map接口的实现类如HashMap,ConcurrentHashMap,HashTable等继承了此方法,通过此方法可以在特定需求下,让你的代码更加简洁. 一.案例说明 1.概述 在JAVA8的Map接口中,增加了一个方法computeIfAbsent,此方法签名如下: public V computeIfAbsent(K key, Function<? super K,? extends V> mappingFunction) 此方法首先判断缓存

Java8 map和reduce

map final List<Integer> numbers = Arrays.asList(1, 2, 3, 4); final List<Integer> doubleNumbers = numbers.stream() .map(number -> number * 2) .collect(Collectors.toList()); 结果:[2, 4, 6, 8] 也可以搞成其他的类型,初始List是Integer,也可以变成String final List<

java8 map flatmap

map: 对于Stream中包含的元素使用给定的转换函数进行转换操作,新生成的Stream只包含转换生成的元素.这个方法有三个对于原始类型的变种方法,分别是:mapToInt,mapToLong和mapToDouble.这三个方法也比较好理解,比如mapToInt就是把原始Stream转换成一个新的Stream,这个新生成的Stream中的元素都是int类型.之所以会有这样三个变种方法,可以免除自动装箱/拆箱的额外消耗: map方法示意图: flatMap:和map类似,不同的是其每个元素转换得

java 8 map遍历方式 (转)

public class LambdaMap { private Map<String, Object> map = new HashMap<>(); @Before public void initData() { map.put("key1", "value1"); map.put("key2", "value2"); map.put("key3", "value3&q

Java8之Stream/Map

本篇用代码示例结合JDk源码讲了Java8引入的工具接口Stream以及新Map接口提供的常用默认方法.    参考:http://winterbe.com/posts/2014/03/16/java-8-tutorial/ 1.Stream示例 package com.mavsplus.java8.turtorial.streams; import java.util.ArrayList; import java.util.List; import java.util.Optional; im

Java8遍历Map

                                                    第一篇博客啦~~~ 今天在上海的一个小伙伴面试,面试官问了一个关于Java8的面试题,问题如下: 如何用Java8的语法实现: List<Map<String,String>> list = new ArrayList<Map<String,String>>(); 将这个List里面的所有map的值全部都修改为 他的名字 ('瓜皮'); 首先该同学思考的是

Java8增强的Map集合

Map集合简介 Map用于保存具有映射关系的数据,因此Map集合里保存着两组值,一组值用于保存Map里的key,另外一组用于保存Map里的vlaue,key和value都可以是任何引用类型的数据. Map的key不允许重复,即同一个Map对象的任何两个key通过equals方法比较总是返回false. key和value之间存在单向一对一关系,即通过指定的key,总能找到唯一的.确定的value.从Map中取出数据时,只要给出指定的key,就可以取出对应的value. 如果把Map里的所有key