ÇÁ·Î±×·¡¹Ö
ù ÆäÀÌÁö ·£´ý ±Û ȸ¿ø°¡ÀÔ ·Î±×ÀÎ
ºñ°ø°³ ¼Õ´Ô ¡¦ 2020-09-01 09:57:59
URL https://te31.com/rgr/view.php?id=study&no=2988 ¸ð¹ÙÀÏ È­¸é
java stream °í¼ö¸¸ (¸®ÆÑÅ丵)

ÀÚ¹Ù°¡ Àͼ÷ÇÏÁö ¾ÊÀºµ¥ ´ÙÀ½°ú °°Àº ÄÚµåµéÀº ¾î¶»°Ô ÁÙÀϼö ÀÖÀ»Áö ±Ã±ÝÇÕ´Ï´Ù

¾Æ·¡¿Í °°ÀÌ 'ÇϳªÀÇ ¸®½ºÆ®'¿¡ ´ëÇØ º°µµÀÇ Á¶°ÇÀ¸·Î streamÀ»(ÃÖÁ¾ÀûÀ¸·Î´Â List) ¸®ÅÏÇÏ´Â ÇÔ¼öµéÀ» ¸¸µé¾ú´Âµ¥
³Ê¹« ¹Ýº¹ÀûÀÌ°í Äڵ带 ÁÙÀϼöÀÖÀ»°Í °°Àºµ¥ ¹æ¹ýÀ» ¸øã°Ú½ººó´Ù

Á¦°¡ ¿øÇÏ´Â°Ç Áö±Ý°ú °°ÀÌ ÇϳªÀÇ ¸®½ºÆ®¿¡ ´ëÇØ '¿©·¯¹ø iterateÇÏ´Â ¹æ¹ý' ¸»°í
'ÇѹøÀÇ iterate·Î' ¾Æ·¡¿Í °°Àº ¿øÇÏ´Â °á°ú¸¦ ¾ò´Â ¹æ¹ýÀÌ ÀÖÀ»±î¿ä
ÇѹøÀÇ iterate·Î ºÒ°¡´É ÇÏ´Ù¸é Àû¾îµµ ¾Æ·¡¿Í °°ÀÌ ¹Ýº¹µÇ´Â Äڵ带 ÁÙÀϼöÀÖ´Â ¹æ¹ýÀÌ¶óµµ ÀÖ´ÂÁö ±Ã±ÝÇϺó´Ù


private List<MyObject> getMyObjs(List<AnotherObject> anotherObjs) {
    ...
    return Stream.of(
        getMyObjs1(anotherObjs, param1List), //1
        getMyObjs2(anotherObjs, param2List), //2
        ...
    )
    .flatMap(i -> i)
    .collect(Collectors.toUnmodifiableList());
}

// 1
private Stream<MyObject> getMyObjs1(List<AnotherObject> anotherObjs, List<Param1> param1List){
  if(param1List.isEmpty()) return Stream.empty();
    
    return anotherObjs.stream()
        .map(anotherObj -> {
          // Condition 1B (param1List¿¡ ÀÖ´Â °´Ã¼¸¦ ã¾Æ °á°ú°ªÀ» MyObject¿¡ ³Ö¾îÁÜ ¾ø´Ù¸é null ¸®ÅÏ)

          return makeMyObject(1, /* Condition 1B °á°ú°ª */);
        })
        .filter(Objects::nonNull);
}

// 2
private Stream<MyObject> getMyObjs2(List<AnotherObject> anotherObjs, List<Param2> param2List){
  if(param2List.isEmpty()) return Stream.empty();
    
    return anotherObjs.stream()
        .map(anotherObj -> {
          //Condition 2B (param2List¿¡ ÀÖ´Â °´Ã¼¸¦ ã¾Æ °á°ú°ªÀ» MyObject¿¡ ³Ö¾îÁÜ ¾ø´Ù¸é null ¸®ÅÏ)

          return makeMyObject(2, /* Condition 2B °á°ú°ª */);
        })
        .filter(Objects::nonNull);
}

Àâ´ã | 2839¸íÀÌ Àоú¾î¿ä. 3.144.36.141

0
1 ºñ°ø°³ ¼Õ´Ô ¡¦ 2020-09-01 16:14:15
°íÆãÀº °Ô½Ã±Û ³»¿¡¼­ ¼Ò½ºÄÚµå Àß º¼ ¼ö ÀÖµµ·Ï Çسö¶ó!
2 ºñ°ø°³ ¼Õ´Ô ¡¦ 2020-09-02 08:31:51
ÇѹøÀÇ iterate·Î ÇÏ·Á¸é ±×³É foreach·Î Á¶°Ç¿¡ ¸ÂÀ» ¶§¸¶´Ù list.addÇÏ´Â ½ÄÀ¸·Î ÇÏ¸é µÉ°Å°°±â´Â Çѵ¥
Á¤³ç ÀÌ ¹æ¹ý ¸»°í´Â ¾ø´Â°ÇÁö ±Ã±ÝÇϳ׿ä
3 ºñ°ø°³ ¼Õ´Ô ¡¦ 2020-09-12 00:00:11
Param1 °ú Param2 µÑ ´Ù ó¸®ÇÒ ¼ö ÀÖ´Â ÅëÇÕ ÇÔ¼ö °°Àº °Å »ý°¢ÇϽóª¿ä?

°³ÀÎÀûÀ¸·Î´Â Param1 Param2 ±¸Á¶°¡ ´Ù¸£¸é À§¿Í °°ÀÌ µû·Î °¡´Â°Ô ¸Â´Â °Å °°Àºµ¥...

ÀÏ´Ü »ý°¢Çغ¼ ¼ö ÀÖ´Â ¹æ¹ýÀº
Param1 Param2 ÀÇ »óÀ§ Ŭ·¡½º ¸¸µé¾î »ç¿ëÇϱâ.
´öŸÀÌÇÎ - ÀÎÅÍÆäÀ̽º·Î ¸¸µé¾î »ç¿ëÇϱâ.
Á¦³×·² ¾²±â.
¸®Ç÷º¼Ç ¾²±â.

...

Àúµµ ÀÚ¹Ù ´¾´¾À̶ó.

±×¸®°í ½ºÆ®¸²Àº Æä·²·²ÀÌ ¾Æ´Ï¸é °Á Æ÷¹® ¾²´Â °Íº¸´Ù ´À·Á¿ä.

Æ÷¹® ¾²´Â °Å °í·ÁÇغ¸½ÉÀÌ...
4 ºñ°ø°³ ¼Õ´Ô ¡¦ 2020-09-12 00:24:44
3/ ÀÏ´Ü for¹®À¸·Î ÇϱäÇߴµ¥
¸¸¾à º»¹®Ã³·³ streamÀ» ¾²¸é iterate°¡ ¿©·¯¹ø ½ÇÇàµÇ´Â°Ç ¸ÂÁÒ?
getMyObjs1 ½ÇÇà½Ã Çѹø
getMyObjs2 ½ÇÇà½Ã ¶Ç Çѹø
5 ºñ°ø°³ ¼Õ´Ô ¡¦ 2020-09-12 01:27:25
³Ü. µÎ ¹ø µµ³×¿ä. ¸¶Áö¸· Stream.of µµ´Â °Å »©¸é...
´ñ±ÛÀ» ÀÛ¼ºÇÏ½Ç ¼ö ¾ø½À´Ï´Ù.
(±ÇÇÑÀÌ ¾ø´Â ȸ¿ø·¹º§)
¸ñ·ÏÀ¸·Î
¡â ÀÌÀü±Û: ÇÁ·ÐÆ®¿£µå ±¸ÀÎÇÏ·Á´Âµ¥ Á¶°Ç Á» ¾Ë·ÁÁÖ½Ç ¼ö ÀÖÀ»±î¿ä? [1]
¡ä ´ÙÀ½±Û: Notepad++ ȨÆäÀÌÁö Áß±¹¿¡¼­ ÀϺΠÂ÷´ÜµÊ;;; [1]
ÀÌ¿ë¾à°ü | ±¤°í/Á¦ÈÞ | °³ÀÎÁ¤º¸Ãë±Þ¹æħ | ¹®ÀÇ/½Å°í | ¸ð¹ÙÀÏ TE31 | ¼­¹ö ºÎÇÏ : 19%
½Ç½Ã°£ Issue Ä¿¹Â´ÏƼ TE31 [¾ËÁö·Õ] ¨Ï 2002-2024
TOP arrow_upward