{"id":730,"date":"2022-03-03T00:25:29","date_gmt":"2022-03-02T15:25:29","guid":{"rendered":"http:\/\/mukgee.com\/?p=730"},"modified":"2022-03-03T00:25:29","modified_gmt":"2022-03-02T15:25:29","slug":"java-stream-%ec%82%ac%ec%9a%a9","status":"publish","type":"post","link":"http:\/\/mukgee.com\/?p=730","title":{"rendered":"Java Stream \uc0ac\uc6a9"},"content":{"rendered":"<p>Java 8\uc5d0\uc11c \uc0c8\ub86d\uac8c \uc0ac\uc6a9 \uac00\ub2a5\ud55c API\ub85c Stream, lambda, Optional \uc774 \uc788\uc2b5\ub2c8\ub2e4.<\/p>\n<p>\uadf8\uc911 Stream \uc744 \uc0ac\uc6a9\ud574\ubcf4\uc558\ub358 \uae30\ub85d\uc744 \ub0a8\uaca8 \ubd05\ub2c8\ub2e4.<\/p>\n<p>&nbsp;<\/p>\n<p>Stream\uc744 \uc0ac\uc6a9\ud558\ub2e4\ubcf4\uba74 Python\uc744 \ucc98\uc74c \uc0ac\uc6a9\ud588\uc744\ub54c\ucc98\ub7fc, \ucf54\ub4dc\ub97c \uc904\uc774\uace0 \uac04\ub2e8\ud558\uac8c \ub9cc\ub4e4\uc5b4\ub098\uac00\ub294 \uc7ac\ubbf8\uac00 \uc788\uc2b5\ub2c8\ub2e4.<\/p>\n<p>\ud568\uc218\ud615 \ud504\ub85c\uadf8\ub798\ubc0d\uc774\ub2c8, \uc131\ub2a5\uc774\ub2c8(Stream API\ub294 for-loop \ubcf4\ub2e4 \uc131\ub2a5\uc774 \uc548\uc88b\ub2e4\uace0 \ud55c\ub2e4)\ub97c \ub5a0\ub098\uc11c \ucf54\ub4dc\ub97c \ub9cc\ub4dc\ub294 \uc7ac\ubbf8\uac00 \uc788\uae30\ub54c\ubb38\uc5d0 \uacc4\uc18d \uc0ac\uc6a9\ud574\ubcf4\uace0 \uc2f6\uc740 \uc0dd\uac01\uc774 \ub4e4\uc5c8\uc2b5\ub2c8\ub2e4.<\/p>\n<p>&nbsp;<\/p>\n<p>\uc5b4\ub290 \uc2dc\uc2a4\ud15c\uc744 \uc6b4\uc601\ud560\ub54c 2\ucc28\uc6d0 \ubc30\uc5f4\ub85c \ub41c String array \ub97c \ub2e4\ub8ec\ub2e4\uace0 \uac00\uc815\ud574\ubcf4\uaca0\uc2b5\ub2c8\ub2e4.<\/p>\n<pre class=\"lang:java decode:true\">String[][] array = {{\"ABC,DFB,35\"} ,{\"DBS,ACR\"} ,{\"DR3,DF\"}};<\/pre>\n<p>2\ucc28\uc6d0 \ubc30\uc5f4\uc758 \uac01 value\ub294 &#8220;,&#8221;\ub97c delimiter \ub85c \uac00\uc9c0\ub294 \uac12\uc785\ub2c8\ub2e4.<\/p>\n<p>\uc704\uc758 array \uc5d0\uc11c for-loop\ub85c &#8220;DFB&#8221; \uac00 \uc874\uc7ac\ud558\ub294\uc9c0 \ud655\uc778\ud558\ub824\uba74 \uc544\ub798\uc640 \uac19\uc740 \ucf54\ub4dc\ub85c \ucc98\ub9ac \uac00\ub2a5\ud569\ub2c8\ub2e4.<\/p>\n<pre class=\"lang:java decode:true\">boolean exist = false;\r\nif(null != array){\r\n    for(int inx = 0; inx &lt; array.length ; inx++){\r\n        for(inj = 0 ; inj &lt; array[inx].split(\",\").length ; inj++){\r\n            if(\"DFB\".equals(array[inx].split(\",\")[inj]){\r\n                exist = true;\r\n            }\r\n        }\r\n    }\r\n}<\/pre>\n<p>foreach \ubb38\ub3c4 \uac00\ub2a5\ud558\uaca0\uc9c0\ub9cc, \uae30\uc874\uc758 for loop\ub85c \uad6c\ud604\ud560 \uacbd\uc6b0 index \ubcc0\uc218\uc640 2\uc911 loop\uc640 array \uac00 null \uc774 \uc544\ub2cc\uc9c0 NPE \uc608\ubc29\uae4c\uc9c0 \ud574\uc57c\uaca0\uc8e0.<\/p>\n<p>&nbsp;<\/p>\n<p>Stream API \ub85c \ud55c\ubc88 \uad6c\ud604\ud574\ubcf4\uaca0\uc2b5\ub2c8\ub2e4.<\/p>\n<pre class=\"lang:java decode:true \">boolean exist = Arrays.stream(Optional.ofNullable(array).orElse(new String[0][]))\r\n                      .flatMap(Arrays::stream)\r\n                      .anyMatch(s -&gt; Pattern.compile(\",\")\r\n                                         .splitAsStream(s)\r\n                                         .anyMatch(a-&gt;code.equals(a)));<\/pre>\n<p>&nbsp;<\/p>\n<p>\uc544\uc9c1 Stream \uc744 \uc798 \ub2e4\ub8e8\uc9c0 \ubabb\ud574\uc11c \uc880 \ub354 \ubcf5\uc7a1\ud560\uc9c0\ub3c4 \ubaa8\ub974\uaca0\uc2b5\ub2c8\ub2e4.<\/p>\n<p>\uadf8\ub798\ub3c4 Python \uc744 \ucc98\uc74c \ubd24\uc744\ub54c\ucc98\ub7fc \ucf54\ub4dc\ub97c \uc904\uc774\ub294 \uc7ac\ubbf8\uac00 \uc788\uace0, \uac00\ub3c5\uc131(?) \uc774 \uc88b\uc740 \ubd80\ubd84\ub3c4 \uc788\uc73c\uba70 \ud2b9\ud788 index \ubcc0\uc218\ub97c \uc798\ubabb \uc0ac\uc6a9\ud574\uc11c \ubc1c\uc0dd\ud558\ub294 miss\ub97c \uc904\uc77c \uc218 \uc788\uaca0\ub124\uc694.<\/p>\n<p>\ub78c\ub2e4\ub098 Stream \uc744 \ub354 \uc798 \ud65c\uc6a9\ud560 \uc218 \uc788\ub2e4\uba74 Java \ucf54\ub4dc\ub294 \uac04\uacb0\ud574\uc9c0\uace0 \uac00\ub3c5\uc131\uc774 \ub192\uc544\uc9c8\uac83 \uac19\uc2b5\ub2c8\ub2e4.<\/p>\n<p>&nbsp;<\/p>\n<p>Parallel Stream \ucc98\ub7fc \uc4f0\ub808\ub4dc\ub97c \uc774\uc6a9\ud55c \ubcd1\ub82c\ucc98\ub9ac\ub3c4 \uac00\ub2a5\ud558\ub2c8 for\ubb38\uc548\uc5d0\uc11c \uc5ec\ub7ec \uc5f0\uc0b0\uc774 \ud544\uc694\ud55c \uacbd\uc6b0 Stream\uc744 \uc798 \uc774\uc6a9\ud55c\ub2e4\uba74 \uc131\ub2a5\uc801\uc778 \uc774\uc810\ub3c4 \uac00\uc9c8 \uc218 \uc788\uc9c0 \uc54a\uc744\uae4c\uc694.<\/p>\n<p>&nbsp;<\/p>\n<p>\ucc38\uace0 : <a href=\"https:\/\/futurecreator.github.io\/2018\/08\/26\/java-8-streams\/\" target=\"_blank\" rel=\"noopener\">https:\/\/futurecreator.github.io\/2018\/08\/26\/java-8-streams\/<\/a><\/p>\n<p><a href=\"https:\/\/jypthemiracle.medium.com\/java-stream-api%EB%8A%94-%EC%99%9C-for-loop%EB%B3%B4%EB%8B%A4-%EB%8A%90%EB%A6%B4%EA%B9%8C-50dec4b9974b\" target=\"_blank\" rel=\"noopener\">https:\/\/jypthemiracle.medium.com\/java-stream-api%EB%8A%94-%EC%99%9C-for-loop%EB%B3%B4%EB%8B%A4-%EB%8A%90%EB%A6%B4%EA%B9%8C-50dec4b9974b<\/a><\/p>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Java 8\uc5d0\uc11c \uc0c8\ub86d\uac8c \uc0ac\uc6a9 \uac00\ub2a5\ud55c API\ub85c Stream, lambda, Optional \uc774 \uc788\uc2b5\ub2c8\ub2e4. \uadf8\uc911 Stream \uc744 \uc0ac\uc6a9\ud574\ubcf4\uc558\ub358 \uae30\ub85d\uc744 \ub0a8\uaca8 \ubd05\ub2c8\ub2e4. &nbsp; Stream\uc744 \uc0ac\uc6a9\ud558\ub2e4\ubcf4\uba74 Python\uc744 \ucc98\uc74c \uc0ac\uc6a9\ud588\uc744\ub54c\ucc98\ub7fc, \ucf54\ub4dc\ub97c&hellip;<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"spay_email":""},"categories":[3],"tags":[19,76],"aioseo_notices":[],"jetpack_featured_media_url":"","_links":{"self":[{"href":"http:\/\/mukgee.com\/index.php?rest_route=\/wp\/v2\/posts\/730"}],"collection":[{"href":"http:\/\/mukgee.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/mukgee.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/mukgee.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/mukgee.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=730"}],"version-history":[{"count":1,"href":"http:\/\/mukgee.com\/index.php?rest_route=\/wp\/v2\/posts\/730\/revisions"}],"predecessor-version":[{"id":731,"href":"http:\/\/mukgee.com\/index.php?rest_route=\/wp\/v2\/posts\/730\/revisions\/731"}],"wp:attachment":[{"href":"http:\/\/mukgee.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=730"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/mukgee.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=730"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/mukgee.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=730"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}