[Java] forEach

epiphanyยท2022๋…„ 12์›” 29์ผ
0
post-thumbnail

๐Ÿงฉ for๋ฌธ

for๋ฌธ์„ ์‚ฌ์šฉํ•˜๋Š” ๋˜ ๋‹ค๋ฅธ ๋ฐฉ๋ฒ•์ด๋‹ค.
๊ธฐ๋ณธ์ ์œผ๋กœ ์‚ฌ์šฉํ•˜๋Š” for๋ฌธ์€ for(int i=0; i<10; i++) ์ด ๋ฐฉ๋ฒ•์ด๋‹ค.
๋งŒ์•ฝ list์˜ ๊ฐ’์„ ํ•˜๋‚˜์”ฉ ๊ฐ€์ ธ์˜ค๊ฒŒ ๋œ๋‹ค๋ฉด for(int i: lists) ์™€ ๊ฐ™์€ ๋ฐฉ๋ฒ•์œผ๋กœ๋„ ๊ฐ€๋Šฅํ•˜๋‹ค.
forEach๋ฌธ์€ ramda์‹์„ ์‚ฌ์šฉํ• ๋•Œ ๋” ์œ ์šฉํ•˜๊ฒŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๋ฉ”์„œ๋“œ๋ผ๊ณ  ์ƒ๊ฐ๋œ๋‹ค. (ํ™•์‹คํ•˜์ง€๋Š” ์•Š์Œ)

๐Ÿงฉ forEach

forEach๋Š” Java8์—์„œ ์ถ”๊ฐ€๋œ ๋ฉ”์†Œ๋“œ์ด๋ฉฐ, List, Map ๋“ฑ์„ ์ˆœํšŒ(Iterate)ํ•˜๋Š”๋ฐ ์‚ฌ์šฉ๋œ๋‹ค.

List<String> items = new ArrayList<>();
items.forEach(name -> System.out.println(name));
items.forEach(System.out::println); //ramda์‹ ์‚ฌ์šฉ

์œ„ ์ฝ”๋“œ์™€ ๊ฐ™์ด ์‚ฌ์šฉ์ด ๊ฐ€๋Šฅํ•˜๋ฉฐ, programmers school์—์„œ ์‚ฌ์šฉํ•œ ๋ฐฉ๋ฒ•์€ ์•„๋ž˜์™€ ๊ฐ™์•˜๋‹ค.

// ๋‹ค๋ฅธ ์‚ฌ๋žŒ์˜ ํ’€์ด ์ฝ”๋“œ
IntStream.range(0, a).forEach(s -> sb.append("*"));
IntStream.range(0, b).forEach(s -> System.out.println(sb.toString()));

๋ณ„์„ ์ฐ๋Š” ์ฝ”๋“œ์˜€๋Š”๋ฐ IntStream๊ณผ forEach๋ฅผ ์‚ฌ์šฉํ•ด ์ค‘์ฒฉ for๋ฌธ์„ ์‚ฌ์šฉํ•˜์ง€ ์•Š๊ณ  ์ฝ”๋”ฉ์ด ๊ฐ€๋Šฅํ•˜๋‹ค.

๐Ÿ“š Reference

  • https://codechacha.com/ko/java-foreach/
  • IntStream์— ๋Œ€ํ•˜์—ฌ ๊ถ๊ธˆํ•˜๋‹ค๋ฉด ์ž‘์„ฑํ•ด์ค€ ~~ ๊ธ€์„ ์ฐธ๊ณ ํ•˜๋ฉด ์ข‹๋‹ค.
    (IntStream๊ณผ ํ•จ๊ป˜ ์ž‘์„ฑํ•˜๋ คํ–ˆ์ง€๋งŒ forEach๋ฅผ IntStream๊ณผ ๋”ฐ๋กœ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ๋„ ์žˆ์–ด ๊ธ€์„ ๋ถˆ๋ฆฌํ•˜์˜€๋‹ค.)

0๊ฐœ์˜ ๋Œ“๊ธ€