{"id":12180,"date":"2018-11-29T17:39:13","date_gmt":"2018-11-29T16:39:13","guid":{"rendered":"http:\/\/blog.wenzlaff.de\/?p=12180"},"modified":"2021-11-22T17:14:09","modified_gmt":"2021-11-22T16:14:09","slug":"java-quickie-iterieren-mit-foreach-ueber-eine-collection-von-mindmaps-mit-lambda-expressions-und-filter","status":"publish","type":"post","link":"http:\/\/blog.wenzlaff.de\/?p=12180","title":{"rendered":"Java Quickie: Iterieren mit forEach \u00fcber eine Collection (von Mindmaps) mit Lambda expressions und Filter"},"content":{"rendered":"<p>Wenn man mit Lambda \u00fcber eine Collection iteriert, kann man auch gleich einen <strong>Filter<\/strong> verwenden. Was das mit der 20 zu tun hat, kommt am 1.12.2018 hier auf dem Blog \ud83d\ude09<br \/>\n<a href=\"http:\/\/blog.wenzlaff.de\/wp-content\/uploads\/2018\/12\/20-Jahre.png\"><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/blog.wenzlaff.de\/wp-content\/uploads\/2018\/12\/20-Jahre.png\" alt=\"\" width=\"2732\" height=\"2048\" class=\"aligncenter size-full wp-image-12153\" srcset=\"http:\/\/blog.wenzlaff.de\/wp-content\/uploads\/2018\/12\/20-Jahre.png 2732w, http:\/\/blog.wenzlaff.de\/wp-content\/uploads\/2018\/12\/20-Jahre-300x225.png 300w, http:\/\/blog.wenzlaff.de\/wp-content\/uploads\/2018\/12\/20-Jahre-768x576.png 768w, http:\/\/blog.wenzlaff.de\/wp-content\/uploads\/2018\/12\/20-Jahre-1024x768.png 1024w\" sizes=\"auto, (max-width: 767px) 89vw, (max-width: 1000px) 54vw, (max-width: 1071px) 543px, 580px\" \/><\/a><br \/>\nJetzt aber hier erst mal ein Beispiel zum Filter:<\/p>\n<pre class=\"lang:java decode:true \" >\r\n@Test\r\npublic void streamForEachFilterTest() {\r\n\r\n\t\tList&lt;Mindmap&gt; maps = getTestMindmaps();\r\n\t\tassertEquals(3, maps.size());\r\n\r\n\t\tList&lt;Mindmap&gt; ergebnis = new ArrayList&lt;&gt;();\r\n\r\n\t\tSystem.out.println(\"Neu mit Stream API von Java 8 iterieren inkl. Filter:\");\r\n\t\t\/\/ iterieren mit forEach \u00fcber eine Collection von Mindmaps und Lambda\r\n\t\t\/\/ expressions inkl. Filter\r\n\t\tmaps.stream()                            \/\/ der Stream\r\n\t\t\t\t.filter(mindmap -&gt; mindmap.getName().contains(\"zwei\")) \r\n                \/\/ mit dem Filter, alle Mindmaps die zwei im Namen enthalten\r\n\t\t\t\t.forEach(mindmap -&gt; { \/\/ \u00fcber die gefundenen gefilterteten Mindmaps\r\n\r\n\t\t\t\t\tSystem.out.println(\"Mindmap die (zwei) enth\u00e4lt: \" + mindmap);\r\n\t\t\t\t\tergebnis.add(mindmap);\r\n\t\t\t\t});\r\n\r\n\t\tassertEquals(1, ergebnis.size());\r\n}\r\n\r\nprivate List&lt;Mindmap&gt; getTestMindmaps() {\r\n\t\t\/\/ Liste mit Mindmaps erstellen\r\n\t\tList&lt;Mindmap&gt; maps = new ArrayList&lt;&gt;();\r\n\r\n\t\t\/\/ Mindmap 1 erstellen und der Liste hinzuf\u00fcgen\r\n\t\tMindmap m1 = new Mindmap();\r\n\t\tm1.setPath(Paths.get(\"mindmap-eins.itmz\"));\r\n\t\tmaps.add(m1);\r\n\r\n\t\t\/\/ Mindmap 2 erstellen und der Liste hinzuf\u00fcgen\r\n\t\tMindmap m2 = new Mindmap();\r\n\t\tm2.setPath(Paths.get(\"mindmap-zwei.itmz\"));\r\n\t\tmaps.add(m2);\r\n\r\n\t\t\/\/ Mindmap 3 erstellen und der Liste hinzuf\u00fcgen\r\n\t\tMindmap m3 = new Mindmap();\r\n\t\tm3.setPath(Paths.get(\"mindmap-drei.itmz\"));\r\n\t\tmaps.add(m3);\r\n\t\treturn maps;\r\n}\r\n<\/pre>\n<p>Und die n\u00f6tige Mindmap BE Klasse:<!--more--><\/p>\n<pre class=\"lang:java decode:true \" >package de.wenzlaff.mindmap.be;\r\n\r\nimport java.nio.file.Path;\r\nimport java.text.DateFormat;\r\nimport java.util.Objects;\r\n\r\n\/**\r\n * Eine Mindmap BE.\r\n * \r\n * @author Thomas Wenzlaff\r\n *\r\n *\/\r\npublic class Mindmap implements Comparable&lt;Mindmap&gt; {\r\n\r\n\tprivate Path path;\r\n\r\n\tpublic Path getPath() {\r\n\t\treturn path;\r\n\t}\r\n\r\n\tpublic void setPath(Path path) {\r\n\t\tthis.path = path;\r\n\t}\r\n\r\n\tpublic String getErstelldatum() {\r\n\t\treturn DateFormat.getInstance().format(getPath().toFile().lastModified());\r\n\t}\r\n\r\n\t\/**\r\n\t * LIefert den Namen der Mindmap Datei.\r\n\t * \r\n\t * @return der Name der Datei.\r\n\t *\/\r\n\tpublic String getName() {\r\n\t\treturn getPath().getFileName().toString();\r\n\t}\r\n\r\n\t\/**\r\n\t * Liefert die Gr\u00f6\u00dfe der Mindmap Datei in kB (1000).\r\n\t * \r\n\t * Im Template Aufruf z.B.: (${mindmap.size} kB)\r\n\t * \r\n\t * @return die Gr\u00f6\u00dfe der Datei in kB.\r\n\t *\/\r\n\tpublic String getSize() {\r\n\t\treturn \"\" + getPath().toFile().length() \/ 1000;\r\n\t}\r\n\r\n\t@Override\r\n\tpublic int hashCode() {\r\n\t\treturn Objects.hash(path);\r\n\t}\r\n\r\n\t@Override\r\n\tpublic boolean equals(Object obj) {\r\n\t\tif (this == obj)\r\n\t\t\treturn true;\r\n\t\tif (obj == null)\r\n\t\t\treturn false;\r\n\t\tif (getClass() != obj.getClass())\r\n\t\t\treturn false;\r\n\t\tMindmap other = (Mindmap) obj;\r\n\t\treturn Objects.equals(path, other.path);\r\n\t}\r\n\r\n\t\/**\r\n\t * Der Name der Mindmap ohne Prefix.\r\n\t *\/\r\n\t@Override\r\n\tpublic String toString() {\r\n\t\treturn getName().substring(0, getName().length() - 5);\r\n\t}\r\n\r\n\t\/**\r\n\t * Zum sortieren von A-Z nach Namen.\r\n\t *\/\r\n\t@Override\r\n\tpublic int compareTo(Mindmap mindmap) {\r\n\t\treturn getName().compareTo(mindmap.getName());\r\n\t}\r\n\r\n}\r\n<\/pre>\n","protected":false},"excerpt":{"rendered":"<p>Wenn man mit Lambda \u00fcber eine Collection iteriert, kann man auch gleich einen Filter verwenden. Was das mit der 20 zu tun hat, kommt am 1.12.2018 hier auf dem Blog \ud83d\ude09 Jetzt aber hier erst mal ein Beispiel zum Filter: @Test public void streamForEachFilterTest() { List&lt;Mindmap&gt; maps = getTestMindmaps(); assertEquals(3, maps.size()); List&lt;Mindmap&gt; ergebnis = new &hellip; <\/p>\n<p class=\"link-more\"><a href=\"http:\/\/blog.wenzlaff.de\/?p=12180\" class=\"more-link\"><span class=\"screen-reader-text\">\u201eJava Quickie: Iterieren mit forEach \u00fcber eine Collection (von Mindmaps) mit Lambda expressions und Filter\u201c <\/span>weiterlesen<\/a><\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[220,79,1],"tags":[3457,663,2178,3458],"class_list":["post-12180","post","type-post","status-publish","format-standard","hentry","category-anleitung","category-programmierung","category-uncategorized","tag-3457","tag-jahre","tag-java","tag-quickie"],"_links":{"self":[{"href":"http:\/\/blog.wenzlaff.de\/index.php?rest_route=\/wp\/v2\/posts\/12180","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/blog.wenzlaff.de\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/blog.wenzlaff.de\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/blog.wenzlaff.de\/index.php?rest_route=\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"http:\/\/blog.wenzlaff.de\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=12180"}],"version-history":[{"count":0,"href":"http:\/\/blog.wenzlaff.de\/index.php?rest_route=\/wp\/v2\/posts\/12180\/revisions"}],"wp:attachment":[{"href":"http:\/\/blog.wenzlaff.de\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=12180"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/blog.wenzlaff.de\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=12180"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/blog.wenzlaff.de\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=12180"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}