Search

์ŠคํŠธ๋ฆผ

์ŠคํŠธ๋ฆผ

๋ฐฐ์—ด์ด๋‚˜ ์ปฌ๋ ‰์…˜์˜ ์š”์†Œ๋“ค์„ ํ•จ์ˆ˜ํ˜• ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๋ฐฉ์‹์œผ๋กœ ์ฒ˜๋ฆฌํ•˜๋Š” ํด๋ž˜์Šค

์ฃผ์š” ๊ธฐ๋Šฅ (์—ฐ์‚ฐ)

์ „์ฒด๋ฐ˜๋ณต, ์ •๋ ฌ, ํ•„ํ„ฐ, ๋งคํ•‘

์ŠคํŠธ๋ฆผ ์—ฐ์‚ฐ ๋ถ„๋ฅ˜

โ€ข
์ค‘๊ฐ„ ์—ฐ์‚ฐ
โ€ข
์ตœ์ข… ์—ฐ์‚ฐ

์ค‘๊ฐ„ ์—ฐ์‚ฐ

์ค‘๊ฐ„ ์—ฐ์‚ฐ
์„ค๋ช…
filter
์กฐ๊ฑด์— ๋งž๋Š” ์š”์†Œ ์ถ”์ถœ
map
์š”์†Œ๊ฐ€ ๊ฐ€์ง„ ํŠน์ • ๋ณ€์ˆ˜ ๋˜๋Š” ์ƒˆ๋กœ์šด ์š”์†Œ๋ฅผ ๋ฐ˜ํ™˜
sort
์š”์†Œ๋“ค์„ ์ •๋ ฌ

์ตœ์ข… ์—ฐ์‚ฐ

์ตœ์ข… ์—ฐ์‚ฐ
์„ค๋ช…
forEach
๋ชจ๋“  ์š”์†Œ๋ฅผ ๋ฐ˜๋ณต
count
์š”์†Œ์˜ ๊ฐœ์ˆ˜
sum
์š”์†Œ์˜ ํ•ฉ๊ณ„
reduce
์š”์†Œ๋“ค์„ ๊ฒฐํ•ฉํ•œ ๋‹จ์ผ ๊ฒฐ๊ณผ๊ฐ’์„ ๋ฐ˜ํ™˜

์ŠคํŠธ๋ฆผ ๋ฉ”์†Œ๋“œ ์˜ˆ์‹œ

1. filter ๋ฉ”์†Œ๋“œ

public class StreamFilter { public static void main(String[] args) { List<Product> products = Arrays.asList( new Product("๋…ธํŠธ๋ถ", 1200000), new Product("์Šค๋งˆํŠธํฐ", 800000), new Product("ํƒœ๋ธ”๋ฆฟ", 500000) ); // ๊ฐ€๊ฒฉ์ด 700000์› ์ด์ƒ์ธ ์ œํ’ˆ๋งŒ ํ•„ํ„ฐ๋ง products.stream() .filter(p -> p.getPrice() >= 700000) .forEach(p -> System.out.println(p.getName())); } }
Java
๋ณต์‚ฌ
์œ„ ์ฝ”๋“œ๋Š” ์ƒํ’ˆ ๋ชฉ๋ก์—์„œ ๊ฐ€๊ฒฉ์ด 70๋งŒ์› ์ด์ƒ์ธ ์ œํ’ˆ๋งŒ ํ•„ํ„ฐ๋งํ•˜์—ฌ ์ด๋ฆ„์„ ์ถœ๋ ฅํ•ฉ๋‹ˆ๋‹ค.

2. map ๋ฉ”์†Œ๋“œ

public class StreamMap { public static void main(String[] args) { List<Product> products = Arrays.asList( new Product("๋…ธํŠธ๋ถ", 1200000), new Product("์Šค๋งˆํŠธํฐ", 800000), new Product("ํƒœ๋ธ”๋ฆฟ", 500000) ); // ์ œํ’ˆ ์ด๋ฆ„๋งŒ ์ถ”์ถœํ•˜์—ฌ ์ƒˆ๋กœ์šด ์ŠคํŠธ๋ฆผ ์ƒ์„ฑ products.stream() .map(Product::getName) .forEach(System.out::println); } }
Java
๋ณต์‚ฌ
์œ„ ์ฝ”๋“œ๋Š” ์ƒํ’ˆ ๊ฐ์ฒด์—์„œ ์ด๋ฆ„๋งŒ ์ถ”์ถœํ•˜์—ฌ ์ƒˆ๋กœ์šด ์ŠคํŠธ๋ฆผ์„ ์ƒ์„ฑํ•˜๊ณ  ์ถœ๋ ฅํ•ฉ๋‹ˆ๋‹ค.

3. sort ๋ฉ”์†Œ๋“œ

public class StreamSort { public static void main(String[] args) { List<Product> products = Arrays.asList( new Product("๋…ธํŠธ๋ถ", 1200000), new Product("์Šค๋งˆํŠธํฐ", 800000), new Product("ํƒœ๋ธ”๋ฆฟ", 500000) ); // ๊ฐ€๊ฒฉ ๊ธฐ์ค€์œผ๋กœ ์˜ค๋ฆ„์ฐจ์ˆœ ์ •๋ ฌ products.stream() .sorted((p1, p2) -> p1.getPrice() - p2.getPrice()) .forEach(p -> System.out.println(p.getName() + ": " + p.getPrice())); } }
Java
๋ณต์‚ฌ
์œ„ ์ฝ”๋“œ๋Š” ์ƒํ’ˆ์„ ๊ฐ€๊ฒฉ ๊ธฐ์ค€์œผ๋กœ ์˜ค๋ฆ„์ฐจ์ˆœ ์ •๋ ฌํ•˜์—ฌ ์ถœ๋ ฅํ•ฉ๋‹ˆ๋‹ค.

4. forEach ๋ฉ”์†Œ๋“œ

public class StreamForEach { public static void main(String[] args) { List<Product> products = Arrays.asList( new Product("๋…ธํŠธ๋ถ", 1200000), new Product("์Šค๋งˆํŠธํฐ", 800000), new Product("ํƒœ๋ธ”๋ฆฟ", 500000) ); // ๋ชจ๋“  ์ œํ’ˆ ์ •๋ณด ์ถœ๋ ฅ products.stream() .forEach(p -> System.out.println(p.getName() + ": " + p.getPrice())); } }
Java
๋ณต์‚ฌ
์œ„ ์ฝ”๋“œ๋Š” ๋ชจ๋“  ์ƒํ’ˆ์˜ ์ด๋ฆ„๊ณผ ๊ฐ€๊ฒฉ ์ •๋ณด๋ฅผ ์ถœ๋ ฅํ•ฉ๋‹ˆ๋‹ค.

5. count ๋ฉ”์†Œ๋“œ

public class StreamCount { public static void main(String[] args) { List<Product> products = Arrays.asList( new Product("๋…ธํŠธ๋ถ", 1200000), new Product("์Šค๋งˆํŠธํฐ", 800000), new Product("ํƒœ๋ธ”๋ฆฟ", 500000) ); // ๊ฐ€๊ฒฉ์ด 700000์› ์ด์ƒ์ธ ์ œํ’ˆ ๊ฐœ์ˆ˜ ๊ณ„์‚ฐ long count = products.stream() .filter(p -> p.getPrice() >= 700000) .count(); System.out.println("70๋งŒ์› ์ด์ƒ ์ œํ’ˆ ์ˆ˜: " + count); } }
Java
๋ณต์‚ฌ
์œ„ ์ฝ”๋“œ๋Š” 70๋งŒ์› ์ด์ƒ์ธ ์ œํ’ˆ์˜ ๊ฐœ์ˆ˜๋ฅผ ๊ณ„์‚ฐํ•ฉ๋‹ˆ๋‹ค.

6. sum ๋ฉ”์†Œ๋“œ

public class StreamSum { public static void main(String[] args) { List<Product> products = Arrays.asList( new Product("๋…ธํŠธ๋ถ", 1200000), new Product("์Šค๋งˆํŠธํฐ", 800000), new Product("ํƒœ๋ธ”๋ฆฟ", 500000) ); // ๋ชจ๋“  ์ œํ’ˆ์˜ ๊ฐ€๊ฒฉ ํ•ฉ๊ณ„ ๊ณ„์‚ฐ int totalPrice = products.stream() .mapToInt(Product::getPrice) .sum(); System.out.println("์ด ๊ฐ€๊ฒฉ: " + totalPrice); } }
Java
๋ณต์‚ฌ
์œ„ ์ฝ”๋“œ๋Š” ๋ชจ๋“  ์ƒํ’ˆ์˜ ๊ฐ€๊ฒฉ ํ•ฉ๊ณ„๋ฅผ ๊ณ„์‚ฐํ•ฉ๋‹ˆ๋‹ค.

7. reduce ๋ฉ”์†Œ๋“œ

public class StreamReduce { public static void main(String[] args) { List<Product> products = Arrays.asList( new Product("๋…ธํŠธ๋ถ", 1200000), new Product("์Šค๋งˆํŠธํฐ", 800000), new Product("ํƒœ๋ธ”๋ฆฟ", 500000) ); // reduce๋ฅผ ์‚ฌ์šฉํ•œ ๊ฐ€๊ฒฉ ํ•ฉ๊ณ„ ๊ณ„์‚ฐ int totalPrice = products.stream() .map(Product::getPrice) .reduce(0, (a, b) -> a + b); System.out.println("์ด ๊ฐ€๊ฒฉ: " + totalPrice); } }
Java
๋ณต์‚ฌ
์œ„ ์ฝ”๋“œ๋Š” reduce๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ชจ๋“  ์ƒํ’ˆ์˜ ๊ฐ€๊ฒฉ์„ ํ•ฉ์‚ฐํ•ฉ๋‹ˆ๋‹ค. reduce๋Š” ์ดˆ๊ธฐ๊ฐ’(0)๊ณผ ๋‘ ์š”์†Œ๋ฅผ ๊ฒฐํ•ฉํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์ •์˜ํ•˜์—ฌ ์ตœ์ข… ๊ฒฐ๊ณผ๋ฅผ ์‚ฐ์ถœํ•ฉ๋‹ˆ๋‹ค.