{"id":1549,"date":"2015-06-24T10:28:28","date_gmt":"2015-06-24T08:28:28","guid":{"rendered":"http:\/\/www.webotlet.hu\/?p=1549"},"modified":"2015-06-24T10:28:28","modified_gmt":"2015-06-24T08:28:28","slug":"java-egyperces-objektumok-valogatasanak-megoldasa","status":"publish","type":"post","link":"https:\/\/www.webotlet.hu\/?p=1549","title":{"rendered":"Java egyperces &#8211; Objektumok v\u00e1logat\u00e1s\u00e1nak megold\u00e1sa"},"content":{"rendered":"<h3><strong>Csak akkor olvass tov\u00e1bb, ha az <a href=\"http:\/\/www.webotlet.hu\/?p=1522\">Objektumok v\u00e1logat\u00e1sa<\/a> feladatot megoldottad, vagy nem siker\u00fclt megoldani.<\/strong><\/h3>\n<p>Az alap feladatot a fenti linken megtal\u00e1lod.<\/p>\n<pre class=\"brush: java; title: ; notranslate\" title=\"\">\r\n\/**\r\n\u00a0*\r\n\u00a0* @author http:\/\/webotlet.hu\r\n\u00a0*\/\r\npackage webotlet_objektumokvalogatasa;\r\n\r\nimport java.io.*;\r\nimport java.util.ArrayList;\r\nimport java.util.HashMap;\r\nimport java.util.TreeMap;\r\nimport java.util.Map;\r\n\r\npublic class Webotlet_ObjektumokValogatasa\r\n{\r\n\r\n\u00a0 public static void main(String&#x5B;] args)\r\n\u00a0 {\r\n\u00a0\u00a0\u00a0 RandomAccessFile raf;\r\n\u00a0\u00a0\u00a0 String sor;\r\n\/\/ a beolvasando novenyek adatai\r\n\u00a0\u00a0\u00a0 ArrayList&lt;Noveny&gt; novenyek = new ArrayList&lt;&gt;();\r\n\/\/ a gyujtendo reszek alapjan szetvalogatott novenyek adatai\r\n\u00a0\u00a0\u00a0 TreeMap&lt;String,ArrayList&lt;Noveny&gt;&gt; reszek = new TreeMap&lt;&gt;();\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \u00a0\r\n\u00a0\u00a0\u00a0 try\r\n\u00a0\u00a0\u00a0 {\r\n\/\/ adatok beolvasasa es tarolasa\r\n\u00a0\u00a0\u00a0\u00a0\u00a0 raf = new RandomAccessFile(&quot;noveny.txt&quot;, &quot;r&quot;);\r\n\u00a0\u00a0\u00a0\u00a0\u00a0 for( sor = raf.readLine(); sor != null; sor = raf.readLine() )\r\n\u00a0\u00a0\u00a0\u00a0\u00a0 {\r\n\/\/ a noveny objektumok tarolasa\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 novenyek.add( new Noveny( sor.split(&quot;;&quot;) ));\r\n\u00a0\u00a0\u00a0\u00a0\u00a0 }\r\n\u00a0\u00a0\u00a0\u00a0 \u00a0\r\n\/\/ vegigmegyunk a novenyeken\r\n\u00a0\u00a0\u00a0\u00a0\u00a0 for( Noveny n : novenyek)\r\n\u00a0\u00a0\u00a0\u00a0\u00a0 {\r\n\/\/ ha nincs meg ilyen resz, amiert novenyt gyujtenek, akkor\r\n\/\/ letrehozunk egy ilyen kulcsot egy listaval, ahova majd\r\n\/\/ az oda tartozo novenyek kerulnek\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 if( !reszek.containsKey( n.getMiert() ) )\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 {\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 reszek.put( n.getMiert(), new ArrayList&lt;Noveny&gt;() );\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 }\r\n\/\/ hozzaadjuk a novenyt az adott listahoz\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 reszek.get( n.getMiert() ).add(n);\r\n\u00a0\u00a0\u00a0\u00a0\u00a0 }\r\n\r\n\/\/ ide pakolom ossze a kiirando szoveget\r\n\u00a0\u00a0\u00a0\u00a0\u00a0 StringBuilder sb = new StringBuilder();\r\n\r\n\/\/ vegigmegyek a Map elemein\r\n\u00a0\u00a0\u00a0\u00a0\u00a0 for( Map.Entry&lt;String,ArrayList&lt;Noveny&gt;&gt; elem : reszek.entrySet() )\r\n\u00a0\u00a0\u00a0\u00a0\u00a0 {\r\n\/\/ eloszor a elem neve jon (a gyujtendo resz)\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 sb.append(elem.getKey()+&quot;:\\n&quot;);\r\n\/\/ majd vegigmegyunk az adott reszhez tartozo novenyeken\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 for( Noveny n : elem.getValue() )\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 {\r\n\/\/ osszepakoljuk a novenyek konkret adatait (mindig pontosvesszo a vegen!)\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 sb.append(&quot;\u00a0\u00a0\u00a0 &quot;+n.getNev()+&quot;, &quot;+n.getKezd()+&quot;, &quot;+n.getVeg()+&quot;;\\n&quot;);\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 }\r\n\/\/ ha egy adott csoporttal vegeztunk, az utolso elem utani pontosvesszot\r\n\/\/ toroljuk, ami mindig a StringBuilder utolso elotti karaktere\r\n\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 sb.deleteCharAt( sb.length()-2 );\r\n\u00a0\u00a0\u00a0\u00a0\u00a0 }\r\n\r\n\u00a0\u00a0\u00a0\u00a0\u00a0 System.out.println( sb );\r\n\u00a0\u00a0\u00a0 }\r\n\u00a0\u00a0\u00a0 catch( IOException e )\r\n\u00a0\u00a0\u00a0 {\r\n\u00a0\u00a0\u00a0\u00a0\u00a0 System.err.println( &quot;HIBA&quot; );\r\n\u00a0\u00a0\u00a0 }\r\n\u00a0 }\r\n}\r\n<\/pre>\n","protected":false},"excerpt":{"rendered":"<p>Csak akkor olvass tov\u00e1bb, ha az Objektumok v\u00e1logat\u00e1sa feladatot megoldottad, vagy nem siker\u00fclt megoldani. Az alap feladatot a fenti linken megtal\u00e1lod. \/** \u00a0* \u00a0* @author http:\/\/webotlet.hu \u00a0*\/ package webotlet_objektumokvalogatasa; import java.io.*; import java.util.ArrayList; import java.util.HashMap; import java.util.TreeMap; import java.util.Map; public <a class=\"more-link\" href=\"https:\/\/www.webotlet.hu\/?p=1549\">Tov\u00e1bb <span class=\"screen-reader-text\">  Java egyperces &#8211; Objektumok v\u00e1logat\u00e1s\u00e1nak megold\u00e1sa<\/span><span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[95],"tags":[136,122,86,144,121,20,124],"class_list":["post-1549","post","type-post","status-publish","format-standard","hentry","category-egyperces-feladatok-megoldasai","tag-entryset","tag-hashmap","tag-java","tag-java_programozas","tag-map","tag-objektum","tag-treemap"],"_links":{"self":[{"href":"https:\/\/www.webotlet.hu\/index.php?rest_route=\/wp\/v2\/posts\/1549","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.webotlet.hu\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.webotlet.hu\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.webotlet.hu\/index.php?rest_route=\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.webotlet.hu\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=1549"}],"version-history":[{"count":2,"href":"https:\/\/www.webotlet.hu\/index.php?rest_route=\/wp\/v2\/posts\/1549\/revisions"}],"predecessor-version":[{"id":1551,"href":"https:\/\/www.webotlet.hu\/index.php?rest_route=\/wp\/v2\/posts\/1549\/revisions\/1551"}],"wp:attachment":[{"href":"https:\/\/www.webotlet.hu\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=1549"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.webotlet.hu\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=1549"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.webotlet.hu\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=1549"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}