Java 8:Stream的使用

记录

开始在工作中接触一些Java 8 的内容,也开始使用Stream处理集合.下面是一些代码,有的是自己写的,有的来源于网上.

java标志

源码

import java.util.*;
import java.util.stream.Collectors;


class User {
    private String code;
    private String name;

    public User() {
    }

    public User(String name, String code) {
        this.code = code;
        this.name = name;
    }

    public String getCode() {
        return code;
    }

    public void setCode(String code) {
        this.code = code;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }
}

public class CsdnTestDemo {

    private static final String[] TAG = {"张三", "李四", "王五"};

    public static void main(String[] args) {
        List<User> lists = new ArrayList<>();
        lists.add(new User("张三", "1"));
        lists.add(new User("李四", "2"));
        lists.add(new User("王五", "3"));
        lists.add(new User("小六", "4"));
        lists.add(new User("第七", "5"));
        lists.add(new User("第八", "6"));

        // 从列表中过滤key,并返回对应的value
        List<String> resultList = lists.stream().filter(p -> Arrays.asList(TAG).contains(p.getName())).map(p -> p.getCode()).collect(Collectors.toList());
        resultList.forEach(x -> System.out.println(x));

        // 实体对象转换为Map.
        Map<String,String> maps = lists.stream().collect(Collectors.toMap(User::getName,User::getCode));

        // 总和.
        int sum = lists.stream().mapToInt(m->Integer.valueOf(m.getCode())).sum();
        System.out.println("总和"+sum);

    }
}

发表评论

电子邮件地址不会被公开。 必填项已用*标注

*

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据