2017-03-16 4 views
0

Ich brauche Erstellen eine Reihe von Deques, so etwas wie die folgendeneine Reihe von Deques

Deque<Point>[] saved = new LinkedList<Point>[12]; 

Dieser Code führt zu einem Fehler erstellen und zu verwenden, da Java Ihnen generische Arrays von Deques erstellen nicht gestattet. Gibt es eine Möglichkeit, die Anordnung von Deques einzurichten, so dass ich auf jede einzelne Deque zugreifen kann, wenn ich muss?

ich auch versucht:

Deque<Point>[] saved; 
//.... 
for(int i = 0;i<12;i++) 
{ 
    saved[i] = new LinkedList<Point>; 
} 

, die eine Nullpointerzurückgibt. Wie kann ich dieses Array erstellen?

+0

@Jens Ich habe keine Angst, ich das gleiche „bekommen kann nicht Erstellen Sie ein generisches Array von Deque " – imulsion

+1

Sie können' Deque [] gespeichert = neue Deque [12]; '.... – KarelG

Antwort

1

Sie müssen saved zu einem ArrayList initialisieren:

// Note that saved has a size defined at construction, 
// which makes this efficient. 
final List<Deque<Point>> saved = new ArrayList<Deque<Point>>(12); 
for (int i = 0; i < 12; i++) { 
    saved.add(new LinkedList<Point>()); 
} 
+1

Funktioniert nicht, ich bin afra ID, bekomme ich die gleiche Beschwerde über nicht in der Lage zu schaffen, eine generische Anordnung von Deque imulsion

+0

Ah, natürlich. Eine 'ArrayList' mit einer definierten Größe sollte gut funktionieren. Die Antwort wurde aktualisiert. – sdgfsdh

+0

@imulsion Es gibt keine Array-Erstellung in diesem Code. Welche Codezeile gibt Ihnen diesen Fehler? – VGR

1

Warum Sie verwenden ArrayDeque nicht?

können Sie verwenden:

ArrayDeque arr = new ArrayDeque<Point>(12); 

Oder diese:

LinkedList l = new LinkedList<Point>(); 
ArrayDeque arr = new ArrayDeque(l); 

Es gibt ein gutes Tutorial hier Java.util.ArrayDeque Class

+0

Ich dachte über das Gleiche nach. ArrayDeque ist eine schnelle Operation mit einem Array. –

+0

danke @M.Situation –