使用Stream方式處理集合元素


package com.itheima.demo03.Stream;

import java.util.ArrayList;
import java.util.stream.Stream;

/**
* @author newcityman
* @date 2019/8/4 - 20:30
* /*
* 練習:集合元素處理(Stream方式)
* 現在有兩個ArrayList集合存儲隊伍當中的多個成員姓名,要求使用傳統的for循環(或增強for循環)依次進行以下若干操作步驟:
* 1. 第一個隊伍只要名字為3個字的成員姓名;存儲到一個新集合中。
* 2. 第一個隊伍篩選之后只要前3個人;存儲到一個新集合中。
* 3. 第二個隊伍只要姓張的成員姓名;存儲到一個新集合中。
* 4. 第二個隊伍篩選之后不要前2個人;存儲到一個新集合中。
* 5. 將兩個隊伍合並為一個隊伍;存儲到一個新集合中。
* 6. 根據姓名創建Person對象;存儲到一個新集合中。
* 7. 打印整個隊伍的Person對象信息。
*/
public class Demo02StreamTest {
public static void main(String[] args) {
//第一支隊伍
ArrayList<String> one = new ArrayList<>();
one.add("迪麗熱巴");
one.add("宋遠橋");
one.add("蘇星河");
one.add("石破天");
one.add("石中玉");
one.add("老子");
one.add("庄子");
one.add("洪七公");
// 1. 第一個隊伍只要名字為3個字的成員姓名;存儲到一個新集合中。
// 2. 第一個隊伍篩選之后只要前3個人;存儲到一個新集合中。
Stream<String> oneStream = one.stream().filter(name -> name.length() == 3).limit(3);
//第二支隊伍
ArrayList<String> two = new ArrayList<>();
two.add("古力娜扎");
two.add("張無忌");
two.add("趙麗穎");
two.add("張三豐");
two.add("尼古拉斯趙四");
two.add("張天愛");
two.add("張二狗");
// 3. 第二個隊伍只要姓張的成員姓名;存儲到一個新集合中。
// 4. 第二個隊伍篩選之后不要前2個人;存儲到一個新集合中。
Stream<String> twoStream = two.stream().filter(name -> name.startsWith("張")).skip(2);
// 5. 將兩個隊伍合並為一個隊伍;存儲到一個新集合中。
// 6. 根據姓名創建Person對象;存儲到一個新集合中。
// 7. 打印整個隊伍的Person對象信息。
Stream.concat(oneStream,twoStream).map(name->new Person(name)).forEach(p-> System.out.println(p));
}
}


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM