---
title: 'Inselupdate: Primitive Elemente in Datenstrukturen verwalten'
url: 'https://www.tutego.de/blog/javainsel/2011/03/primitive-elemente-in-datenstrukturen-verwalten'
markdown: 'https://www.tutego.de/blog/javainsel/2011/03/primitive-elemente-in-datenstrukturen-verwalten.md'
date: '2011-03-25'
description: '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ötig sind (über das Boxing fügt Java 5 scheinbar primitive Elemente ein, doch in Wahrheit sind e…'
taxonomy:
  category:
    - Allgemein
---

# Inselupdate: Primitive Elemente in Datenstrukturen verwalten

![Illustration einer tropischen Insel mit Palmen und einem hohen Berg](https://www.tutego.de/blog/javainsel/user/themes/tutego/images/insel-cover.jpg)# Java Blog für Programmierer

[Java Blog für Programmierer](https://www.tutego.de/blog/javainsel/)

## Inselupdate: Primitive Elemente in Datenstrukturen verwalten

25.03.2011 · [Christian Ullenboom](https://www.tutego.de/blog/javainsel/author/admin/)

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ötig sind (über das Boxing fügt Java 5 scheinbar primitive Elemente ein, doch in Wahrheit sind es Wrapper-Objekte). Auch wenn es also heißt:

```java
List<Double> list = new ArrayList<Double>();

list.add( 1.1 );

list.add( 2.2 );
```

sind es zwei neue Double-Objekte, die aufgebaut werden, und in die Liste wandern. Anders und klarer geschrieben, was wirklich passiert:

```java
List<Double> list = new ArrayList<Double>();

list.add( Double.valueOf(1.1) );

list.add( new Double(2.2) );
```

Dem `Double.valueOf()` ist der new-Operator nicht abzulesen, doch die Methode ist implementiert als: Double `valueOf(double d)`{ return **new Double(d)**; }.

**Spezialbibliotheken**

Für performante Anwendungen und großer Menge von primtiven Elemente ist es sinnvoll, eine Klasse für den speziellen Datentyp einzusetzen. Anstatt so etwas selbst zu programmieren, kann der Entwickler auf drei Implementierungen zurückgreifen:

12. *fastutil* (<http://fastutil.dsi.unimi.it/>). Erweiterung um Datenstrukturen für (sehr viele) primitive Elemente und hochperformante Ein-/Ausgabe-Klassen.
13. *GNU Trove* (*<http://trove.starlight-systems.com/>*). Stabil und Entwicklung ist aktiv. Neue Datenstrukturen aus Java 5 oder 6 wie Queues zählen jedoch nicht dazu.
14. *Apache Commons Primitives* (<http://jakarta.apache.org/commons/primitives/>). Stabil in der Version 1.0, aber seit Ende 2003 nicht mehr aktualisiert.

Kategorien: [Allgemein](https://www.tutego.de/blog/javainsel/category/allgemein/)

[← Alle Beiträge](https://www.tutego.de/blog/javainsel/)

---

## Navigation

- Previous: [JSR 334 (Project Coin) ist im Public Review](https://www.tutego.de/blog/javainsel/2011/03/jsr-334-project-coin-ist-im-public-review.md)
- Next: [Guice 3.0 ist raus](https://www.tutego.de/blog/javainsel/2011/03/guice-3-0-ist-raus.md)
