{"id":908,"date":"2011-03-25T14:27:27","date_gmt":"2011-03-25T12:27:27","guid":{"rendered":"http:\/\/www.tutego.de\/blog\/javainsel\/2011\/03\/primitive-elemente-in-datenstrukturen-verwalten\/"},"modified":"2011-03-25T14:29:46","modified_gmt":"2011-03-25T12:29:46","slug":"primitive-elemente-in-datenstrukturen-verwalten","status":"publish","type":"post","link":"https:\/\/www.tutego.de\/blog\/javainsel\/2011\/03\/primitive-elemente-in-datenstrukturen-verwalten\/","title":{"rendered":"Inselupdate: Primitive Elemente in Datenstrukturen verwalten"},"content":{"rendered":"<p>Jede Datenstruktur der Collection-API akzeptiert, auch wenn sie generisch verwendet wird, nur Objekte. Primitive Datentypen nehmen die Sammlungen nicht auf, was zur Konsequenz hat, dass Wrapper-Objekte n\u00f6tig sind (\u00fcber das Boxing f\u00fcgt Java 5 scheinbar primitive Elemente ein, doch in Wahrheit sind es Wrapper-Objekte). Auch wenn es also hei\u00dft:<\/p>\n<p>List&lt;Double&gt; list = new ArrayList&lt;Double&gt;();<\/p>\n<p>list.add( <b>1.1<\/b> );<\/p>\n<p>list.add( <b>2.2<\/b> );<\/p>\n<p>sind es zwei neue Double-Objekte, die aufgebaut werden, und in die Liste wandern. Anders und klarer geschrieben, was wirklich passiert:<\/p>\n<p>List&lt;Double&gt; list = new ArrayList&lt;Double&gt;();<\/p>\n<p>list.add( Double.valueOf(<b>1.1<\/b>) );<\/p>\n<p>list.add( new Double(<b>2.2<\/b>) );<\/p>\n<p>Dem Double.valueOf() ist der new-Operator nicht abzulesen, doch die Methode ist implementiert als: Double valueOf(double d){ return <b>new Double(d)<\/b>; }.<\/p>\n<p><strong>Spezialbibliotheken<\/strong><\/p>\n<p>F\u00fcr performante Anwendungen und gro\u00dfer Menge von primtiven Elemente ist es sinnvoll, eine Klasse f\u00fcr den speziellen Datentyp einzusetzen. Anstatt so etwas selbst zu programmieren, kann der Entwickler auf drei Implementierungen zur\u00fcckgreifen:<\/p>\n<li><i>fastutil<\/i> (http:\/\/fastutil.dsi.unimi.it\/). Erweiterung um Datenstrukturen f\u00fcr (sehr viele) primitive Elemente und hochperformante Ein-\/Ausgabe-Klassen.<\/li>\n<li><i>GNU Trove<\/i> (<i>http:\/\/trove.starlight-systems.com\/<\/i>). Stabil und Entwicklung ist aktiv. Neue Datenstrukturen aus Java 5 oder 6 wie Queues z\u00e4hlen jedoch nicht dazu.<\/li>\n<li><i>Apache Commons Primitives<\/i> (http:\/\/jakarta.apache.org\/commons\/primitives\/). Stabil in der Version 1.0, aber seit Ende 2003 nicht mehr aktualisiert.<\/li>\n","protected":false},"excerpt":{"rendered":"<p>Jede Datenstruktur der Collection-API akzeptiert, auch wenn sie generisch verwendet wird, nur Objekte. Primitive Datentypen nehmen die Sammlungen nicht auf, was zur Konsequenz hat, dass Wrapper-Objekte n\u00f6tig sind (\u00fcber das Boxing f\u00fcgt Java 5 scheinbar primitive Elemente ein, doch in Wahrheit sind es Wrapper-Objekte). Auch wenn es also hei\u00dft: List&lt;Double&gt; list = new ArrayList&lt;Double&gt;(); list.add( [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_jetpack_memberships_contains_paid_content":false,"footnotes":"","_links_to":"","_links_to_target":""},"categories":[1],"tags":[],"class_list":["post-908","post","type-post","status-publish","format-standard","hentry","category-allgemein"],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/www.tutego.de\/blog\/javainsel\/wp-json\/wp\/v2\/posts\/908","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.tutego.de\/blog\/javainsel\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.tutego.de\/blog\/javainsel\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.tutego.de\/blog\/javainsel\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.tutego.de\/blog\/javainsel\/wp-json\/wp\/v2\/comments?post=908"}],"version-history":[{"count":3,"href":"https:\/\/www.tutego.de\/blog\/javainsel\/wp-json\/wp\/v2\/posts\/908\/revisions"}],"predecessor-version":[{"id":911,"href":"https:\/\/www.tutego.de\/blog\/javainsel\/wp-json\/wp\/v2\/posts\/908\/revisions\/911"}],"wp:attachment":[{"href":"https:\/\/www.tutego.de\/blog\/javainsel\/wp-json\/wp\/v2\/media?parent=908"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.tutego.de\/blog\/javainsel\/wp-json\/wp\/v2\/categories?post=908"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.tutego.de\/blog\/javainsel\/wp-json\/wp\/v2\/tags?post=908"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}