{"id":2928,"date":"2010-08-31T10:15:51","date_gmt":"2010-08-31T08:15:51","guid":{"rendered":"https:\/\/www.herr-rau.de\/wordpress\/?p=2928"},"modified":"2013-04-13T15:37:47","modified_gmt":"2013-04-13T13:37:47","slug":"ueberblick-ueber-listen-in-java-und-andere-collections","status":"publish","type":"post","link":"https:\/\/www.herr-rau.de\/wordpress\/2010\/08\/ueberblick-ueber-listen-in-java-und-andere-collections.htm","title":{"rendered":"\u00dcberblick \u00fcber Listen in Java (und andere Collections)"},"content":{"rendered":"<div style='text-align:right;'><small>(<a href='https:\/\/www.herr-rau.de\/wordpress\/2010\/08\/ueberblick-ueber-listen-in-java-und-andere-collections.htm#comments'>3 Kommentare.<\/a>)<\/small> <\/div><p>Im Stoff der 11. Klasse sind Listen Thema, genauer: <strong><a href=\"https:\/\/www.herr-rau.de\/wordpress\/2009\/10\/einfach-verkettete-liste-rekursion-und-entdeckungen-bei-powerpoint.htm\">einfach verkettete Listen<\/a><\/strong>. Die Klassen und Methoden dazu erstellen die Sch\u00fcler in liebevoller Handarbeit selber, und das ist auch sinnvoll, weil sie dann wissen, wie solche Listen prinzipiell funktionieren.<\/p>\n<p>Aber nat\u00fcrlich bringt die Programmiersprache Java bereits verschiedene Listen-Klassen mit, die wichtigsten sind <code>Vector, ArrayList, LinkedList<\/code>. Die letzte davon ist der Sch\u00fclerliste recht nahe. Man kann schnell neue Elemente zu einer <code>LinkedList<\/code> hinzuf\u00fcgen oder welche entfernen, daf\u00fcr dauert es etwas l\u00e4nger, das &#8211; sagen wir &#8211; zw\u00f6lfte Element der Liste herauszusuchen. Bei den anderen beiden Klassen geht das effektiver, daf\u00fcr dauert das Einf\u00fcgen und Entfernen l\u00e4nger. (Warum das so ist, wei\u00df ein Sch\u00fcler nach der 11. Klasse, warum das wichtig ist, nach der 12.)<\/p>\n<p>Im Programmierprojekt der elften Klassen &#8211; ich werde noch davon erz\u00e4hlen &#8211; sollen die Sch\u00fcler auch solche Listen verwenden, laut Lehrplankommentar die selbst angefertigten. Das haben wir uns geschenkt, stattdessen habe ich den Sch\u00fclern gezeigt, wie die entsprechenden Java-Klassen funktionieren, und die Sch\u00fcler haben damit gearbeitet.<\/p>\n<p>Als \u00dcberblick f\u00fcr die Sch\u00fcler und gleichzeitig als ein Einblick in den Aufbau von Java habe ich diese Grafik erstellt: <\/p>\n<p><a href=\"https:\/\/www.herr-rau.de\/wordpress\/archiv\/JavaCollections.jpg\"><img src='https:\/\/www.herr-rau.de\/wordpress\/archiv\/JavaCollectionsKlein.jpg' width=\"550\" height=\"295\" alt='' \/><\/a><\/p>\n<p>Sch\u00f6n sieht man die Zusammenh\u00e4nge zwischen Vererbung, Schnittstellen (rot) und abstrakten Klassen (gr\u00fcn). <code>ArrayList, Vector<\/code> und <code>LinkedList<\/code> erben manche Methoden von der abstrakten Oberklasse <code>AbstractList<\/code> (die wiederum von <code>AbstractCollection<\/code> erbt), angesprochen werden k\u00f6nnen die Listenklassen \u00fcber die gemeinsame Schnittstelle <code>List<\/code>.<br \/>\nDie Klasse <code>LinkedList<\/code> kann dabei auch \u00fcber das Interface <code>Queue<\/code> angesprochen werden, ebenso wie die Klasse <code>PriorityQueue<\/code>, obwohl beide von ganz anderen Klassen abstammen.<\/p>\n<p>Erstellt habe ich die Grafik mit dem offenen UML-Editor <a href=\"http:\/\/staruml.sourceforge.net\/en\/\">StarUML<\/a>. Hier ist die <a href=\"https:\/\/www.herr-rau.de\/wordpress\/archiv\/JavaCollections.uml\">Quelldatei<\/a> daf\u00fcr, falls jemand an der Grafik weiterbasteln m\u00f6chte.<\/p>\n<p>&#8212; <em>Fu\u00dfnote:<\/em> Alle Listen in Java implementieren die Schnittstelle <code>Collection<\/code>, ebenso wie Mengen und Warteschlangen. Alle Collections, aber nicht nur die, implementieren ihrerseits die Schnittstelle <code>Iterable<\/code> &#8211; das hei\u00dft, sie sind jeweils ein Haufen von Elementen, die man der Reihe nach durchgehen kann. Das geht zum Beispiel mit der eleganten for-each-Schleife: <\/p>\n<p><code>for (Listenelement l : liste) {<br \/>\n&nbsp;&nbsp;l.aktionAusfuehren();<br \/>\n}<\/code><\/p>\n<p>Man liest sie so: F\u00fcr jedes Element <em>l<\/em> in der Sammlung namens <em>liste<\/em>, tue Folgendes: lass <em>l<\/em> eine bestimmte Methode ausf\u00fchren.<br \/>\nVielleicht ist das auch was f\u00fcr die Sch\u00fcler der 10. Klasse, die mit Arrays und Z\u00e4hlschleifen gro\u00dfe Probleme haben.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>(3 Kommentare.) Im Stoff der 11. Klasse sind Listen Thema, genauer: einfach verkettete Listen. Die Klassen und Methoden dazu erstellen die Sch\u00fcler in liebevoller Handarbeit selber, und das ist auch sinnvoll, weil sie dann wissen, wie solche Listen prinzipiell funktionieren. Aber nat\u00fcrlich bringt die Programmiersprache Java bereits verschiedene Listen-Klassen mit, die wichtigsten sind Vector, ArrayList, [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[25],"tags":[227],"class_list":["post-2928","post","type-post","status-publish","format-standard","hentry","category-informatik","tag-informatik"],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"jetpack_likes_enabled":true,"_links":{"self":[{"href":"https:\/\/www.herr-rau.de\/wordpress\/wp-json\/wp\/v2\/posts\/2928","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.herr-rau.de\/wordpress\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.herr-rau.de\/wordpress\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.herr-rau.de\/wordpress\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.herr-rau.de\/wordpress\/wp-json\/wp\/v2\/comments?post=2928"}],"version-history":[{"count":1,"href":"https:\/\/www.herr-rau.de\/wordpress\/wp-json\/wp\/v2\/posts\/2928\/revisions"}],"predecessor-version":[{"id":3400,"href":"https:\/\/www.herr-rau.de\/wordpress\/wp-json\/wp\/v2\/posts\/2928\/revisions\/3400"}],"wp:attachment":[{"href":"https:\/\/www.herr-rau.de\/wordpress\/wp-json\/wp\/v2\/media?parent=2928"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.herr-rau.de\/wordpress\/wp-json\/wp\/v2\/categories?post=2928"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.herr-rau.de\/wordpress\/wp-json\/wp\/v2\/tags?post=2928"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}