16.11.2013 Aufrufe

Programmieren in Java - HostFiXX.de

Programmieren in Java - HostFiXX.de

Programmieren in Java - HostFiXX.de

MEHR ANZEIGEN
WENIGER ANZEIGEN

Erfolgreiche ePaper selbst erstellen

Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.

<strong>Programmieren</strong> <strong>in</strong> <strong>Java</strong><br />

"L<strong>in</strong>da","Elisa"<br />

};<br />

List l = Arrays.asList(feld);<br />

Collections.sort(l);<br />

System.out.pr<strong>in</strong>tln(l);<br />

}<br />

}<br />

Die <strong>Java</strong> Bibliothek bietet nicht viel zur Umwandlung von Fel<strong>de</strong>rn („Array“) <strong>in</strong><br />

dynamische Datenstrukturen. E<strong>in</strong>e Ausnahme bil<strong>de</strong>t die Hilfsklasse Arrays, die die<br />

Metho<strong>de</strong> asList() anbietet. Die Behälterklassen ArrayList und L<strong>in</strong>kedList wer<strong>de</strong>n<br />

über asList() nicht unterstützt, d.h. Über asList() wird zwar e<strong>in</strong>e <strong>in</strong>terne Klasse<br />

ArrayList benutzt, die e<strong>in</strong>e Erweiterung von AbstractList ist, aber nur das<br />

notwendigste implementiert.<br />

Sortieralgorithmus. Es han<strong>de</strong>lt sich um e<strong>in</strong>en optimierten „Merge-Sort“. Se<strong>in</strong>e<br />

Laufzeit beträgt N ⋅ log(N)<br />

.<br />

Die sort() Metho<strong>de</strong> arbeitet mit <strong>de</strong>r toArray() Funktion <strong>de</strong>r Klasse List. Damit<br />

wer<strong>de</strong>n die Elemente <strong>de</strong>r Liste <strong>in</strong> e<strong>in</strong>em Feld (Array) abgelegt. Schließlich wird die<br />

sort() Metho<strong>de</strong> <strong>de</strong>r Klasse Arrays genutzt und mit e<strong>in</strong>em ListIterator wie<strong>de</strong>r<br />

<strong>in</strong> die Liste e<strong>in</strong>gefügt.<br />

Daten <strong>in</strong> umgekehrter Reihenfolge sortieren. Das wird über e<strong>in</strong> spezielles<br />

Comparator-Objekt geregelt, das von Collections über die Metho<strong>de</strong><br />

reverseOr<strong>de</strong>r() angefor<strong>de</strong>rt wer<strong>de</strong>n kann.<br />

Bsp.:<br />

import java.util.*;<br />

public class CollectionsReverseSortDemo<br />

{<br />

public static void ma<strong>in</strong>(Str<strong>in</strong>g args[])<br />

{<br />

Vector v = new Vector();<br />

for (<strong>in</strong>t i = 0; i < 10; i++)<br />

{<br />

v.add(new Double(Math.random()));<br />

}<br />

Comparator comparator = Collections.reverseOr<strong>de</strong>r();<br />

Collections.sort(v,comparator);<br />

System.out.pr<strong>in</strong>tln(v);<br />

}<br />

}<br />

E<strong>in</strong>e an<strong>de</strong>re Möglichkeit für umgekehrt sortierte Listen besteht dar<strong>in</strong>, erst die Liste<br />

mit sort() zu sortieren und anschließend mit reverse() umzudrehen.<br />

447

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!