5 Stimmen

java: wie erstelle ich ein Array von Tupeln

Wie kann ich ein Array von Tupeln in jsp erstellen (java) wie (a:1, b:2) (c:3, d:4) ... ...

3voto

Amir Rachum Punkte 71741

Erstellen Sie eine Tupel-Klasse, etwa wie:

class Tuple {
    private Object[] data;
    public Tuple (Object.. members) { this.data = members; }
    public void get(int index) { return data[index]; }
    public int getSize() { ... }
}

Dann erstellen Sie einfach ein Array von Tuple-Instanzen.

2voto

Carl Punkte 7410

Wenn Sie ein Tupel beliebiger Größe im Stil eines Perl-Hashes wollen, verwenden Sie ein Map<K,V> (wenn Sie einen festen Typ von Schlüsselwerten haben - Ihr Beispiel sieht so aus Map<Character,Integer> funktionieren würde - andernfalls verwenden Sie den Rohtyp). Schauen Sie in den Java-Sammlungen nach, um weitere Einzelheiten über die verschiedenen Implementierungen zu erfahren.

Angesichts dieser Tupel, wenn Sie sie in einer sequentiellen Sammlung stecken wollen, würde ich eine Liste verwenden (wieder, schauen Sie die Sammlungen Bibliothek).

Am Ende haben Sie also

List<Map<K,V>> listOfTuples

Wenn Sie etwas Spezifischeres benötigen (z. B. werden Sie immer x1, x2, x3 in Ihrem Tupel haben), sollten Sie erwägen, die Maps zu EnumMap s - Sie können einschränken, welche Schlüssel Sie haben, und wenn Sie eine Vorgabe (oder eine andere Einschränkung bei der Erstellung) angeben, garantieren, dass etwas herauskommt.

1voto

tzaman Punkte 44506

In Java gibt es keine Standardklasse für Paare/n-Tupel; Sie müssen Ihre eigene Klasse entwickeln.

1voto

Mark Punkte 1534

Können Sie die Klasse HashSet verwenden.

0voto

Eyal Schneider Punkte 21626

Wenn Sie es mit Tupeln fester Größe und festen Namen der Attribute zu tun haben, definieren Sie eine eigene einfache Datenklasse und definieren Sie dann das Array dieser Klasse.

Wenn Sie hingegen wollen, dass die Attributnamen flexibel sind und zur Laufzeit festgelegt werden, verwenden Sie eine Map-Struktur. In Ihrem obigen Beispiel scheint es, als ob HashMap<String,Integer> die Aufgabe erfüllen kann. Möglicherweise möchten Sie sie umhüllen, um ihre Funktionalität zu reduzieren und vielleicht auch eine spezifischere Funktionalität hinzuzufügen.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X