Java 9

59 Beiträge · Seite 3 von 6

Statische ofXXX(…)-Methoden zum Aufbau unveränderbarer Set-, List-, Map-Datenstrukturen

· Christian Ullenboom

In Java 9 sind echte immutable Datenstrukturen dazugekommen, die sich über statische ofXXX(…)-Methoden der Schnittstellen List, Set und Map aufbauen lassen. Jede versuchte Änderung an den Datenstrukturen führt zu einer UnsupportedOperationException. Damit eigenen sie sich hervorragend für konstante Sammlungen, die …

Weiterlesen: Statische ofXXX(…)-Methoden zum Aufbau unveränderbarer Set-, List-, Map-Datenstrukturen →

Lexikografische Array-Verbleiche mit compare (…) und compareUnsigned(…)

· Christian Ullenboom

Diverse in Java 9 eingeführte int compareXXX(XXX[] a, XXX[] b)-Methoden gehen die Arrays ab und testen alle Paare auf ihre Ordnung. Es gibt die von Comparator bekannte Rückgabe: ist jedes a[i] == b[i] ist die Rückgabe 0. Ist in der Abfragefolge ein a[i] kleiner als b[i] ist, dann ist die Rückgabe negativ, ist ein a[i] …

Weiterlesen: Lexikografische Array-Verbleiche mit compare (…) und compareUnsigned(…) →

Objekt-Arrays mit Arrays.equals(…) und Arrays.deepEquals(…) vergleichen

· Christian Ullenboom

Die Arrays.equals(…)-Methode kann auch beliebige Objektfelder vergleichen, doch nutzt sie dann nicht die Identitätsprüfung per ==, sondern die Gleichheit per equals(…). Eine seit Java 9 hinzugekommene Methode fragt einen Comparator. Beispiel Enthalten zwei String-Arrays die gleichen Wörter, wobei Groß-/Kleinschreibung …

Weiterlesen: Objekt-Arrays mit Arrays.equals(…) und Arrays.deepEquals(…) vergleichen →

Die Schnittstelle Checksum

· Christian Ullenboom

Wir finden Zugang zur Prüfsummenberechnung über die Schnittstelle java.util.zip.Checksum, die für ganz allgemeine Prüfsummen steht. Eine Prüfsumme wird entweder für ein Feld oder ein Byte berechnet. Checksum liefert die Schnittstelle zum Initialisieren und Auslesen von Prüfsummen, die die konkreten Prüfsummen-Klassen …

Weiterlesen: Die Schnittstelle Checksum →

Stream iterate(…)-Methoden

· Christian Ullenboom

Die zwei statischen iterate(…)-Methoden generieren einen Stream aus einem Startwert und einer Funktion, die das nächste Element produziert. Bei iterate(T seed, UnaryOperator<T> f) ist der Strom unendlich, bei der zweiten – in Java 9 hinzugekommenen Methode – iterate(…, Predicate<? super T> hasNext, …)-Methode beendet …

Weiterlesen: Stream iterate(…)-Methoden →

Präfix-Operation der Stream-API

· Christian Ullenboom

Unter einem Präfix verstehen wir eine Teilfolge eines Streams, die beim ersten Element beginnt. Wir können mit limit(long) selbst einen Präfix generieren, doch im Allgemeinen geht es darum eine Bedingung zu haben, die alle Elemente eines Präfix-Streams erfüllen müssen, und wenn es für ein Element nicht gilt, dann den …

Weiterlesen: Präfix-Operation der Stream-API →

Datumsklasse java.time.LocalDate

· Christian Ullenboom

Ein Datum (ohne Zeitzone) repräsentiert die Klasse LocalDate. Damit lässt sich zum Beispiel ein Geburtsdatum repräsentieren. Ein temporales Objekt kann über die statischen of(…)-Fabrikmethoden aufgebaut, über ofInstant(Instant instant, ZoneId zone) oder von einem anderen temporalen Objekt abgeleitet werden. …

Weiterlesen: Datumsklasse java.time.LocalDate →

java.time.Duration

· Christian Ullenboom

Eine Klasse Duration repräsentiert Dauern von Zeiten und ist weder mit Zeitzonen verbunden noch mit anderen Zeitleisten. Daher ist auch ein Tag idealisiert exakt 24 Stunden lang, Schaltsekunden kennt die Klasse nicht, und einen Tag zu addieren heißt, 24 Stunden aufzurechnen. Die interne Berechnungseinheit ist Sekunden …

Weiterlesen: java.time.Duration →