Sie werden mit dem (Java) Collections Framework verwaltet, das somit einer der wichtigsten Bestandteile des JDK ist. Speziell für die am häufigsten verwendete Schnittstelle java.util. In diesem Artikel werden die entsprechenden Erweiterungen von Iterable, Collection und List beschrieben. Sammlung, Liste, Set, Karte. und die. Der ArrayList aus der Java-Standard-API ist leistungsstark und praktisch, wenn es um die Verwaltung von Listen mit dynamischer Länge und wechselnden Inhalten geht.
Javabas 8: itterable, compilation and list
Sein Schwerpunkt liegt auf der Implementierung von skalierbaren, hochverfügbaren Internetdiensten mit den Sprachen C++ und Java. Ich schaue mir diese Wochen weiterhin Java 8 mit den Extensions für die Bereiche für die Bereiche Internet, Sammlung und Liste an. Aber es gibt auch einige weitere Innovationen, auf die ich im Anschluss näher eingehe.
Das java.lang.Iterable Interface wurde mit Java 5 vorgestellt und wird speziell für die for-ech-Schleife eingesetzt. Jetzt gibt es die neue Möglichkeit der sogenannten internen Wiederholung. Nachfolgend ein Beispiel. Liste < Mitarbeiter> Mitarbeiter = ….; Mitarbeiter.forEach(e->System. out.printf( „%-20s %7.0f n“, e.getDisplayName(), e.getSalary()); Diese Maske ist nur wenig kleiner als die korrespondierende äußere Interaktion mit einer For-Ach-Schleife.
Auch bei sehr kompakten Ausdrücken wie dem nachfolgenden Beispiel überzeugt die neue Technik nicht. lch weiß nur wenige gute Vorbilder. Eine davon ist in der nachfolgenden Auflistung zu finden. Das Interface java.util.Collection wird in Java 8 um die Funktion removedIf ergänzt. In der nachfolgenden Auflistung finden Sie dazu ein paar Beispiel, und für die Praxis können Sie sich vorstellen, wie der zugehörige Quelltext ohne removIf aussähe.
Aufruf tokens = ….; tokens.removeIf(Objects::isNull); tokens.removeIf(String::isEmpty); tokens.removeIf(s->s == null ||| s.isEmpty()); Die Methodik removIf erleichtert diese Arbeit immens. Soviel dazu: Die Stream-API ist in erster Linie für Queries und Evaluierungen geeignet, während die anderen Verfahren Kollektionen auswechseln. Das Replace-All-Verfahren ist vergleichbar mit removIf. Dadurch ist die Technik besonders für unveränderbare Gegenstände geeignet.
Die folgende Auflistung zeigt einige wenige Anwendungsbeispiele. Liste < Zeichenkette> Token = ….; tokens.replaceAll(String::trim); tokens.replaceAll(String::toUpperCase); tokens.replaceAll(String::internal); tokens.replaceAll(„PREFIX-„::concat); tokens.replaceAll(s-> s. concat(„-SUFFIX“)); Diese Beispielprogramme können nicht ohne weiteres durch eine For-Each-Loop überschrieben werden. Das Filterprädikat ist jedoch im Unterschied zu removIf überflüssig, da die Kondition in der Aktion mitcodiert wird. In der nachfolgenden Auflistung werden z.B. nur die Null-Einträge durch einen Vorschlagswert überschrieben.
In Java 8 wird nun auch die Listenschnittstelle um eine korrespondierende Methodik ergänzt. Die folgende Auflistung beinhaltet zwei simple Aufzählungen. Erwähnenswert ist auch, dass Java 8 eine Vielzahl von Hilfefunktionen für die Comparator-Oberfläche bietet, mit denen sich nun auch kompliziertere Sorten leicht gestalten lassen. Liste Token = ….; tokens.sort(String::compareTo); tokens.sort(String::compareToIgnoreCase); Zurück zum Sortieren: Es ist sicher nicht falsch, diese Art in der Listenschnittstelle zu haben.
Dieses Verfahren hat keinen wesentlichen Einfluss auf die Wartungsfreundlichkeit oder Leistung.
Leave a Reply