{"id":3615,"date":"2022-08-01T21:56:31","date_gmt":"2022-08-01T13:56:31","guid":{"rendered":"https:\/\/www.zeroheart.xyz\/wordpress\/?p=3615"},"modified":"2022-08-02T10:09:17","modified_gmt":"2022-08-02T02:09:17","slug":"stream%e6%b5%81%e9%87%8c%e9%9d%a2%e7%9a%84%e6%93%8d%e4%bd%9c%e6%95%b4%e7%90%86","status":"publish","type":"post","link":"https:\/\/www.zeroheart.xyz\/wordpress\/?p=3615","title":{"rendered":"stream\u6d41\u91cc\u9762\u7684\u64cd\u4f5c\u6574\u7406"},"content":{"rendered":"\n<pre class=\"wp-block-preformatted\">1.map\uff0c\u904d\u5386\u6216\u8005\u62ff\u5230\u5c5e\u6027\n\nitems.stream().map(OrderItem::getOrderNo)\nitems.stream().map(orderItem->{\n   xxx;\n   return orderItem;\n})\n\n2.Collectors.toMap\nhttps:\/\/blog.csdn.net\/liuerchong\/article\/details\/120279530\n\u5728\u5b9e\u9645\u9879\u76ee\u4e2d\u6211\u4eec\u7ecf\u5e38\u4f1a\u7528\u5230 List \u8f6c Map \u64cd\u4f5c ->\u8fc7\u53bb\u662ffor\u5faa\u73af\u7684\u64cd\u4f5c\uff0c\u73b0\u5728\u53ef\u4ee5\u5b66\u4e60\u5982\u4e0b\u7684\u65b9\u6cd5Collectors.toMap\n\nMap&lt;String, String> mapHouse = houses.stream().collect(Collectors.toMap(House::getHousename, House::getAddress));\nSystem.out.println(mapHouse);\n\/\/{aa=\u6e56\u5317\u6b66\u6c49, bb=\u6d59\u6c5f\u676d\u5dde, cc=\u5317\u4eac\u6d77\u6dc0}\n\n\/**\n         * \u6536\u96c6\u4e00\u4e0b\u5c5e\u6027\u548c\u5bf9\u8c61\u672c\u8eab\n         *\/\n        Map&lt;Integer, House> houseMap = houses.stream().collect(Collectors.toMap(House::getOwnerid, o -> o));\n        Map&lt;Integer, House> houseMap1 = houses.stream().collect(Collectors.toMap(House::getOwnerid,  Function.identity()));\n        System.out.println(houseMap);\n       \/**\n         * {1=House{id=1, ownerid=1, housename='aa', address='\u5317\u4eac\u6d77\u6dc0'}, \n         * 2=House{id=2, ownerid=2, housename='bb', address='\u6e56\u5317\u6b66\u6c49'}, \n         * 3=House{id=3, ownerid=3, housename='cc', address='\u6d59\u6c5f\u676d\u5dde'}}\n         *\/\n\n2.1java.lang.IllegalStateException: Duplicate key \u95ee\u9898\u5904\u7406\n\u89e3\u51b3\u529e\u6cd5\uff1a\u51fa\u73b0\u91cd\u590d\u65f6\uff0c\u53d6\u524d\u9762value\u7684\u503c\uff0c\u6216\u8005\u53d6\u540e\u9762\u653e\u5165\u7684value\u503c\uff0c\u5219\u8986\u76d6\u5148\u524d\u7684value\u503c\nhouses.stream().collect(Collectors.toMap(House::getOwnerid, House::getHousename,(v1,v2)->v2));\nhouses.stream().collect(Collectors.toMap(House::getOwnerid, House::getHousename,(v1,v2)->v1));\n\n\n3. Function.identity()\u8fd9\u4e2a\u6807\u8bc6\u5bf9\u8c61\u672c\u8eab\n\n4.Collectors.toList()\nitems.stream().map(OrderItem::getOrderNo).collect(Collectors.toList());\n\u6700\u57fa\u672c\u7684\u6536\u96c6map\u7684\u6570\u636e\n\n5.Collectors.groupingBy\nhttps:\/\/blog.csdn.net\/u014231523\/article\/details\/102535902\n\n\u666e\u901a\u5206\u7ec4\u3001\u5c5e\u6027\u62fc\u63a5\u5206\u7ec4\u3001\u4e8c\u7ea7\u5206\u7ec4\u3001\u5206\u7ec4\u5c5e\u6027\u6c42\u548c\u3001\u5206\u7ec4\u6570\u3001\u8054\u5408\u5176\u4ed6\u6536\u96c6\u5668\u7b49\n\nMap&lt;String, Long> prodMap = prodList.stream().collect(Collectors.groupingBy(Product::getCategory, Collectors.counting()));\n\/\/{\"\u5564\u9152\":2,\"\u96f6\u98df\":3}\n\n\nMap&lt;String, Integer> prodMap = prodList.stream().collect(Collectors.groupingBy(Product::getCategory, Collectors.summingInt(Product::getNum)));\n\/\/{\"\u5564\u9152\":13,\"\u96f6\u98df\":6}\n\nMap&lt;String, Product> prodMap = prodList.stream().collect(Collectors.groupingBy(Product::getCategory, Collectors.collectingAndThen(Collectors.maxBy(Comparator.comparingInt(Product::getNum)), Optional::get)));\n\/\/{\"\u5564\u9152\":{\"category\":\"\u5564\u9152\",\"id\":5,\"name\":\"\u767e\u5a01\u5564\u9152\",\"num\":10,\"price\":15},\"\u96f6\u98df\":{\"category\":\"\u96f6\u98df\",\"id\":3,\"name\":\"\u6708\u997c\",\"num\":3,\"price\":30}}\n\n\nMap&lt;String, Set&lt;String>> prodMap = prodList.stream().collect(Collectors.groupingBy(Product::getCategory, Collectors.mapping(Product::getName, Collectors.toSet())));\n\/\/{\"\u5564\u9152\":[\"\u9752\u5c9b\u5564\u9152\",\"\u767e\u5a01\u5564\u9152\"],\"\u96f6\u98df\":[\"\u9762\u5305\",\"\u997c\u5e72\",\"\u6708\u997c\"]}\n\n\n6.Collectors.mapping\nCollectors.mapping() \u4e00\u822c\u7528\u4e8e\u591a\u91cd map and reduce \u4e2d\u3002 Java \u6587\u6863\u4e2d\u63cf\u8ff0\u7684\u539f\u578b\u5982\u4e0b\n\nString nameByAge = list.stream().collect(Collectors.mapping(Person::getName, Collectors.joining(\",\", \"[\", \"]\")));\n    System.out.println(nameByAge);\n    nameByAge = list.stream().map(person -> person.getName()).collect(Collectors.joining(\",\", \"[\", \"]\"));\n    System.out.println(nameByAge);\n\n\u5206\u7ec4\u6700\u5927\u503c\nMap&lt;Integer, Double> result = studentList.stream()\n            .collect(Collectors.groupingBy(Student::getAge,\n                    Collectors.mapping(Student::getScore, Collectors.maxBy(Integer::compareTo))));\n\n\u5206\u7ec4\u96c6\u5408\nMap&lt;Integer, Set&lt;String>> result = studentList.stream()\n            .collect(Collectors.groupingBy(Student::getAge, \n                    Collectors.mapping(Student::getName, Collectors.toSet())));\n\n7.Collectors.reducing\nhttps:\/\/blog.csdn.net\/weixin_43939924\/article\/details\/120904075\n\nList&lt;Integer> testData = Arrays.asList(1, 2, 3, 4, 5, 6, 7, 8, 9);\n\t\tOptional&lt;Integer> sum = testData.stream().collect(Collectors.reducing((prev, cur) -> {\n\t\t\tSystem.out.println(\"prev=>\" + prev + \"cur=>\" + cur);\n\t\t\treturn prev + cur;\n\t\t}));\n\t\tSystem.out.print(sum.get()); \/\/ 45\n\n\nList&lt;Integer> testData = Arrays.asList(1, 2, 3, 4, 5, 6, 7, 8, 9);\n\t\tInteger sum = testData.stream().collect(Collectors.reducing(20, (prev, cur) -> {\n\t\t\tSystem.out.println(\"prev=>\" + prev + \"cur=>\" + cur);\n\t\t\treturn prev + cur;\n\t\t}));\n\t\tSystem.out.print(sum); \/\/65\n\n\n\nList&lt;Integer> testData = Arrays.asList(1, 2, 3, 4, 5, 6, 7, 8, 9);\n\t\tString joinStr = testData.stream().collect(Collectors.reducing(\"\u8f6c\u6362\u6210\u5b57\u7b26\u4e32\", in -> {\n\t\t\treturn in + \"\";\n\t\t}, (perv, cur) -> {\n\t\t\treturn perv + \",\" + cur;\n\t\t}));\n\t\tSystem.out.print(joinStr); \/\/ \u8f6c\u6362\u6210\u5b57\u7b26\u4e32,1,2,3,4,5,6,7,8,9\n\n\n8.peek\npeek\u65b9\u6cd5\u548cmap\u65b9\u6cd5\u7684\u533a\u522b\n1.peek\u65b9\u6cd5\u662f\u6d88\u8d39\u578b\u63a5\u53e3\u3002\n\u8c03\u7528peek\u65b9\u6cd5\u540e\uff0c \u6d41\u8fd8\u5728\u3002peek\u4e0d\u9700\u8981return\uff0c\u76f4\u63a5\u6539\u4e86\u503c\n\n2.map\u65b9\u6cd5\u662f\u51fd\u6570\u578b\u63a5\u53e3\u3002\n\u8c03\u7528map\u65b9\u6cd5\u540e\uff0c\u6d41\u5df2\u7ecf\u88ab\u6d88\u8d39\u3002map\u9700\u8981return\n\npeek() \u7684\u5178\u578b\u7528\u6cd5\uff1a\u534f\u52a9\u8c03\u8bd5\n\nStream.of(\"one\", \"two\", \"three\", \"four\")\n         .filter(e -> e.length() > 3)\n         .peek(e -> System.out.println(\"Filtered value: \" + e))\n         .map(String::toUpperCase)\n         .peek(e -> System.out.println(\"Mapped value: \" + e))\n         .collect(Collectors.toList());\n\n<\/pre>\n\n\n\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>1.map\uff0c\u904d\u5386\u6216\u8005\u62ff\u5230\u5c5e\u6027 items.stream().map(OrderItem::getOrderNo [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[6],"tags":[229],"_links":{"self":[{"href":"https:\/\/www.zeroheart.xyz\/wordpress\/index.php?rest_route=\/wp\/v2\/posts\/3615"}],"collection":[{"href":"https:\/\/www.zeroheart.xyz\/wordpress\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.zeroheart.xyz\/wordpress\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.zeroheart.xyz\/wordpress\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.zeroheart.xyz\/wordpress\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=3615"}],"version-history":[{"count":41,"href":"https:\/\/www.zeroheart.xyz\/wordpress\/index.php?rest_route=\/wp\/v2\/posts\/3615\/revisions"}],"predecessor-version":[{"id":3658,"href":"https:\/\/www.zeroheart.xyz\/wordpress\/index.php?rest_route=\/wp\/v2\/posts\/3615\/revisions\/3658"}],"wp:attachment":[{"href":"https:\/\/www.zeroheart.xyz\/wordpress\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=3615"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.zeroheart.xyz\/wordpress\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=3615"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.zeroheart.xyz\/wordpress\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=3615"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}