1. ์ฝ๋๋ฆฌ๋ทฐ
// "python", "java", "javascript","c","c++","c#"
// C๋ก ์์ํ๋ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด ์ถ์ถ
/* .startsWith()๋ String ํด๋์ค์ ๋งค์๋๋ก์ ()์์ ๊ฐ์ด ๋ฌธ์์ด์ ์๋์ง๋ฅผ boolean์ผ๋ก ๋ฐํ
.filter()๋ ()์์ ์กฐ๊ฑด์ ๋ง๋ ์์๋ง ๊ณจ๋ผ์ ๋ง๋ ์ ์คํธ๋ฆผ์ ๋ฐํ */
Arrays.stream(langs).filter(x-> x.startsWith("c")).forEach(System.out::println);
System.out.println("-----------------------------------------");
// java ๋ผ๋ ๊ธ์๋ฅผ ํฌํจํ๋ ์ธ์ด
Arrays.stream(langs).filter(x-> x.contains("java")).forEach(System.out::println);
System.out.println("-----------------------------------------");
// 4๊ธ์ ์ดํ์ ์ธ์ด๋ฅผ ๋ฝ์์ ์ ๋ ฌํ ๋ค ์ถ๋ ฅ
/*์ปฌ๋ ์
ํ๋ ์์ํฌ๋ ํด๋์ค์ stream ๋ง๋๋ ๋งค์๋๊ฐ ๋ฐ๋ก ์์ด์ ๊ฐ์ฒด๋ ๊ทธ๊ฑฐ ์ฐ๋ฉด ๋๋ค.*/
langList.stream().filter(x-> x.length()<=4).sorted().forEach(System.out::println);
System.out.println("-----------------------------------------");
//4๊ธ์ ์ดํ์ ์ธ์ด ์ค์์ c ๋ผ๋ ๊ธ์๋ฅผ ํฌํจํ๋ ์ธ์ด
langList.stream()
.filter(x -> x.length()<=4)
.filter(x -> x.contains("c"))
.forEach(System.out::println);
System.out.println("-----------------------------------------");
// 4๊ธ์ ์ดํ์ ์ธ์ด ์ค์์ c๋ผ๋ ๊ธ์๋ฅผ ํฌํจํ๋ ์ธ์ด๊ฐ ํ๋๋ผ๋ ์๋์ง ์ฌ๋ถ
// anymatch: ()์์ ์กฐ๊ฑด์ ์คํธ๋ฆผ์ ๋ฐ์ดํฐ ์ค ํ๋๋ผ๋ ๋ง์กฑํ๋ฉด true ๋ฐํ
// allmatch: ()์์ ์กฐ๊ฑด์ ์คํธ๋ฆผ์ ๋ฐ์ดํฐ๋ค์ด ์ ๋ถ ๋ง์กฑํ๋ฉด true ๋ฐํ
boolean anyMatch = langList.stream()
.filter(x->x.length()<=4)
.anyMatch(x-> x.contains("c"));
System.out.println(anyMatch);
System.out.println("-----------------------------------------");
// 3๊ธ์ ์ดํ์ ์ธ์ด๋ค์ ๋ชจ๋ c๋ผ๋ ๊ธ์๋ฅผ ํฌํจํ๋์ง ์ฌ๋ถ
boolean allMatch = langList.stream()
.filter(x->x.length()<=3)
.allMatch(x-> x.contains("c"));
System.out.println(allMatch);
System.out.println("-----------------------------------------");
// 4๊ธ์ ์ดํ์ ์ธ์ด ์ค์์ c๋ผ๋ ๊ธ์๋ฅผ ํฌํจํ๋ ์ธ์ด ๋ค์ (์ด๋ ค์์) ๋ผ๋ ๊ธ์๋ฅผ ํจ๊ป ์ถ๋ ฅ
// map()์ ์คํธ๋ฆผ์ ์์๋ค์ ํจ์์ ์ธ์๋ก ์ ๋ฌํ๋ค. ํด๋น ํจ์์ ๋ฐํ๊ฐ๋ค๋ก ์ ์คํธ๋ฆผ ๋ง๋ค์ด ๋ฐํํ๋ค.
langList.stream()
.filter(x->x.length()<=4)
.filter(x->x.contains("c"))
.map(x -> x + "(์ด๋ ค์์)") //๋๋ค์์ String f(String x) {return x+"(์ด๋ ค์์)"}๋ ๊ฐ์ ๋ง
.forEach(System.out::println);
System.out.println("-----------------------------------------");
// c๋ผ๋ ๊ธ์๋ฅผ ํฌํจํ๋ ์ธ์ด๋ฅผ ๋๋ฌธ์๋ก ์ถ๋ ฅ
langList.stream()
.filter(x -> x.contains("c"))
.map(String::toUpperCase)
.forEach(System.out::println);
System.out.println("-----------------------------------------");
// c ๋ผ๋ ๊ธ์๋ฅผ ํฌํจํ๋ ์ธ์ด๋ฅผ ๋๋ฌธ์๋ก ๋ณ๊ฒฝํ์ฌ ๋ฆฌ์คํธ๋ก ์ ์ฅ
List<String> langListStratsWithC = langList.stream()
.filter(x -> x.contains("c"))
.map(String::toUpperCase)
.collect(Collectors.toList());
langListStratsWithC.stream().forEach(System.out::println);
**์ฐธ๊ณ ** ๋งค์๋ ์ฐธ์กฐ
// ์คํธ๋ฆผ ์ฐ์ฐ์ ๊ฑฐ์น ๋, ๋๋ค์์ ๋งค์๋ ์ฐธ์กฐ๋ก ๋ ์ฝ๊ฒ ํํ ๊ฐ๋ฅ.
// ๋งค์๋ ์ฐธ์กฐ ์, ์ธ์๋ฅผ ๋ฐ๋ ๋ถ๋ถ์ด ์์ง๋ง,
// ์ ์คํธ๋ฆผ ์ฐ์ฐ์์ ๋ฐํ๋ ๊ฐ์ ์๋์ผ๋ก ์ธ์๋ก ๋ฐ์ ์ฒ๋ฆฌํ๋ฏ๋ก ๊ฑฑ์ ์๋ค.
// ๋งค์๋ ์ฐธ์กฐ์ ํํ๋ ๋ค์๊ณผ ๊ฐ๋ค. // ํด๋์ค์ด๋ฆ::๋งค์๋์ด๋ฆ
//์์1)
.forEach(n -> System.Out.println(n));
.forEach(System.out::println);
//์์2)
.map(n -> String.toUpperCase(n))
.map(String::toUpperCase)
2. ์ค์ค๋ก ํด๋ณด๊ธฐ
package WorkOut_Myself;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.regex.Pattern;
import java.util.stream.Collectors;
public class Stream_intensiveCourse {
public static void main(String[] args) {
ArrayList<String> name = new ArrayList<>(Arrays.asList("๊น๋ฐ์ฌ","์์ฉํ ๊ต์๋","์ด๋ฐ์ฌ","์ค์ ์๋ฐ๋กฌ","ํ๋ก์ดํธ","๊น๊ทํ"));
// C๋ก ์์ํ๋ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด๋ง ์ถ๋ ฅ, java ๋ผ๋ ๊ธ์ ํฌํจํ๋ ์ธ์ด๋ง ์ถ๋ ฅ
System.out.println("<<C๋ก ์์ํ๋ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด๋ง ์ถ๋ ฅ>>");
name.stream().filter(n -> n.startsWith("๊น")).forEach(System.out::println);
System.out.println();
System.out.println("<<java ๋ผ๋ ๊ธ์ ํฌํจํ๋ ์ธ์ด๋ง ์ถ๋ ฅ>>");
name.stream().filter(n -> n.contains("๋ฐ์ฌ")).forEach(System.out::println);
System.out.println("--------------------------------------------");
// 4๊ธ์ ์ดํ ์ธ์ด ๋ฝ์์ ์ ๋ ฌ ๋ค ์ถ๋ ฅ
System.out.println("<<4๊ธ์ ์ดํ ์ธ์ด ๋ฝ์์ ์ ๋ ฌ ๋ค ์ถ๋ ฅ>>");
name.stream().filter(n->n.length()>=4).sorted().forEach(System.out::println);
System.out.println("--------------------------------------------");
// 4๊ธ์ ์ดํ ์ธ์ด ์ค C๊ฐ ๋ค์ด๊ฐ๋ ๋ง ์์ผ๋ฉด true ๋ฐํ // ์ ๋ถ C๊ฐ ๋ค์ด๊ฐ๋ฉด true ๋ฐํ
System.out.println("4๊ธ์ ์ดํ ์ธ์ด ์ค C๊ฐ ๋ค์ด๊ฐ๋ ๋ง ์์ผ๋ฉด true ๋ฐํ");
boolean Yoon = name.stream().filter(n -> n.length() >= 4).anyMatch(n -> n.contains("์ค์"));
System.out.println(Yoon);
System.out.println("์ ๋ถ C๊ฐ ๋ค์ด๊ฐ๋ฉด true ๋ฐํ");
boolean Yoon2 = name.stream().filter(n -> n.length() >= 4).allMatch(n -> n.contains("์ค์"));
System.out.println(Yoon2);
// ๋ฌธ์์ด ๋ค์ ๋ค๋ฅธ ๋ง ๋ถ์ฌ์ ์ถ๋ ฅ
name.stream().filter(n->n.contains("์ค์")).map(n -> n + " (๊ฐ ์ธ๊ฐ์ง ์๋ ์๋ผ)").forEach(System.out::println);
// ์ ๋ถ ๋๋ฌธ์๋ก ์ถ๋ ฅ
ArrayList<String> name2 = new ArrayList<>();
name2.add("john");
name2.add("Harry");
name2.add("son");
name2.add("Klusepski");
name2.add("Romero");
name2.stream().map(String::toUpperCase).forEach(System.out::println);
// C๋ผ๋ ๋ง ํฌํจํ ์ธ์ด ์ ๋ถ ๋๋ฌธ์๋ก ๋ณ๊ฒฝํด์ ์๋ก์ด ๋ฆฌ์คํธ์ ์ ์ฅ
System.out.println("----------------------------");
List<String> o = name2.stream().filter(n -> n.contains("o")).map(String::toUpperCase).collect(Collectors.toList());
o.stream().forEach(System.out::println);
}
}
0