IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 开发工具 -> stream流操作 -> 正文阅读

[开发工具]stream流操作

stream流基本操作
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

public class TestStream {
    public static void main(String[] args) {
        List<House> houseList = new ArrayList<>();
        houseList.add(House.HouseBuilder.create().setColumn("钢柱").setBeam(null).setFloor("钢地板").setWall("玻璃墙").build());
        houseList.add(House.HouseBuilder.create().setColumn("木柱").setBeam("钢梁").setFloor("木地板").setWall("木墙").build());
        houseList.add(House.HouseBuilder.create().setColumn("木柱").setBeam("木梁").setFloor(null).setWall("白灰墙").setStairs("螺旋楼梯").build());
        houseList.add(House.HouseBuilder.create().setColumn(null).setBeam("钢梁").setFloor("瓷砖").setWall("瓷砖墙").setStairs("旋转楼梯").build());
        houseList.add(House.HouseBuilder.create().setColumn(null).setBeam("钢筋").setFloor("大理石").setWall(null).build());
        houseList.add(House.HouseBuilder.create().setColumn("钢筋").setBeam(null).setFloor("水磨石").setWall("清水砖墙").build());

        System.out.println("=============list转string,list,set,map===============");
        String collect = houseList.stream().filter(r -> Objects.nonNull(r.getWall())).filter(r -> !r.getWall().startsWith("瓷")).map(House::getWall).collect(Collectors.joining(","));
        List<String> beamList = houseList.stream().map(House::getBeam).collect(Collectors.toList());
        Set<String> wallSet = houseList.stream().filter(r -> Objects.nonNull(r.getFloor())).map(House::getWall).collect(Collectors.toSet());
        Map<String, String> wallAndFloorMap = houseList.stream().filter(r -> Objects.nonNull(r.getFloor())).collect(Collectors.toMap(House::getWall, House::getFloor));
        System.out.println("=============list转string===============");
        System.out.println(collect);
        System.out.println("=============list转list===============");
        beamList.forEach(r -> System.out.println(r));
        System.out.println("=============list转set===============");
        wallSet.forEach(r -> System.out.println(r));
        System.out.println("=============list转map===============");
        wallAndFloorMap.forEach((k, v) -> System.out.println(k + "============" + v));

        System.out.println("=============map转list,map===============");
        System.out.println("=============map转list===============");
        List<String> map2List = wallAndFloorMap.entrySet().stream().filter(r -> r.getValue().endsWith("石")).map(r -> r.getValue().concat("地板")).collect(Collectors.toList());
        map2List.forEach(r -> System.out.println(r));
        System.out.println("=============map转map===============");
        Map<String, String> map2Map = wallAndFloorMap.entrySet().stream().filter(r -> Objects.nonNull(r.getKey())).filter(r -> r.getValue().length() > 2).collect(Collectors.toMap(Map.Entry::getValue, Map.Entry::getKey));
        map2Map.forEach((k, v) -> System.out.println(k + "========" + v));
    }
}

class House {
    private String wall;
    private String floor;
    private String column;
    private String beam;
    private String stairs;

    public String getWall() {
        return wall;
    }

    public String getFloor() {
        return floor;
    }

    public String getColumn() {
        return column;
    }

    public String getBeam() {
        return beam;
    }

    public String getStairs() {
        return stairs;
    }

    private House(HouseBuilder builder) {
        this.wall = builder.wall;
        this.floor = builder.floor;
        this.column = builder.column;
        this.beam = builder.beam;
        this.stairs = builder.stairs;
    }

    static class HouseBuilder {
        private String wall;
        private String floor;
        private String column;
        private String beam;
        private String stairs;

        public static HouseBuilder create() {
            return new HouseBuilder();
        }

        public House build() {
            return new House(this);
        }

        public HouseBuilder setFloor(String floor) {
            this.floor = floor;
            return this;
        }

        public HouseBuilder setColumn(String column) {
            this.column = column;
            return this;
        }

        public HouseBuilder setWall(String wall) {
            this.wall = wall;
            return this;
        }

        public HouseBuilder setBeam(String beam) {
            this.beam = beam;
            return this;
        }

        public HouseBuilder setStairs(String stairs) {
            this.stairs = stairs;
            return this;
        }

        @Override
        public String toString() {
            return "HouseBuilder{" +
                    "wall='" + wall + '\'' +
                    ", floor='" + floor + '\'' +
                    ", column='" + column + '\'' +
                    ", beam='" + beam + '\'' +
                    ", stairs='" + stairs + '\'' +
                    '}';
        }
    }
}

建造者模式

使用场景:参数比较多,一般多于4个,有必填也有非必填。
1.在House中创建一个静态内部类 HouseBuilder,然后将House中的参数都复制到HouseBuilder类中。
2.在House中创建一个private的构造函数,参数为HouseBuilder类型
3.在HouseBuilder中创建设置函数,对House中那些可选参数进行赋值,返回值为HouseBuilder类型的实例
4.在HouseBuilder中创建一个build()方法,在其中构建House的实例并返回

  开发工具 最新文章
Postman接口测试之Mock快速入门
ASCII码空格替换查表_最全ASCII码对照表0-2
如何使用 ssh 建立 socks 代理
Typora配合PicGo阿里云图床配置
SoapUI、Jmeter、Postman三种接口测试工具的
github用相对路径显示图片_GitHub 中 readm
Windows编译g2o及其g2o viewer
解决jupyter notebook无法连接/ jupyter连接
Git恢复到之前版本
VScode常用快捷键
上一篇文章      下一篇文章      查看所有文章
加:2022-02-26 11:50:46  更:2022-02-26 11:50:57 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/26 7:17:05-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码