Inicjalizacja listy Javy w jednym wierszu

0 Comments

przegląd

w tym krótkim tutorialu zbadamy, jak zainicjować listę za pomocą jednolinijek.

Czytaj dalej:

Kolekcje.emptyList () vs. nowa instancja List

poznaj różnice między kolekcjami.emptyList () i nowa instancja list.,
Czytaj więcej →

Przewodnik po macierzy Java

szybki i praktyczny przewodnik po macierzy Java
Czytaj więcej →

Utwórz z tablicy

możemy utworzyć listę z tablicy. A dzięki literałom tablicy możemy je zainicjalizować w jednej linii:

możemy zaufać mechanizmowi varargs, który zajmie się tworzeniem tablicy. Dzięki temu możemy napisać bardziej zwięzły i czytelny kod:

instancja wynikowa tego kodu implementuje interfejs listy, ale nie jest to java.util.,ArrayList lub LinkedList. Zamiast tego, jest to lista wspierana przez oryginalną tablicę, która ma dwa implikacje, które przyjrzymy się w pozostałej części tej sekcji.

chociaż nazwa klasy jest ArrayList, jest ona w Javie.util.Pakiet tablic.

2.1. Stały rozmiar

instancja wynikowa z tablic.asList będzie miał stały rozmiar:

2.2. Shared Reference

oryginalna tablica i lista mają te same odniesienia do obiektów:

Utwórz ze strumienia (Java 8)

możemy łatwo przekonwertować strumień na dowolny rodzaj kolekcji.,

dlatego za pomocą fabrycznych metod dla strumieni możemy tworzyć i inicjalizować listy w jednej linii:

powinniśmy tutaj zauważyć, że kolektory.tolist () nie gwarantuje dokładnej implementacji zwracanej listy.

nie ma ogólnej Umowy o zmienność, serializowalność lub Bezpieczeństwo wątku zwracanej instancji. Nasz kod nie powinien polegać na żadnej z tych właściwości.

niektóre źródła podkreślają ten strumień.z dnia ( … ).collect ( … ) może mieć większą pamięć i wydajność niż Tablice.asList ()., Ale w prawie wszystkich przypadkach jest to taka mikro-optymalizacja, że nie ma różnicy.

metody fabryczne (Java 9)

JDK 9 wprowadza kilka wygodnych metod fabrycznych dla kolekcji:

jednym z ważnych szczegółów jest to, że zwracane instancje są niezmienne. Poza tym metody fabryczne mają kilka zalet w zakresie wydajności przestrzeni i bezpieczeństwa gwintów.

ten temat jest bardziej szczegółowo omówiony w tym artykule.,

Inicjalizacja podwójnego nawiasu klamrowego

w kilku miejscach możemy znaleźć metodę o nazwie inicjalizacja podwójnego nawiasu klamrowego, która wygląda tak:

nazwa „inicjalizacja podwójnego nawiasu klamrowego” jest dość myląca. Składnia może wyglądać kompaktowo i elegancko, ale niebezpiecznie ukrywa to, co dzieje się pod maską.

w Javie nie ma elementu składni o podwójnym nawiasie; są to dwa bloki sformatowane celowo w ten sposób.

za pomocą zewnętrznych szelek deklarujemy anonimową klasę wewnętrzną, która będzie podklasą ArrayList., Możemy zadeklarować szczegóły naszej podklasy wewnątrz tych szelek.

jak zwykle możemy używać bloków inicjalizacji instancji i stąd pochodzi wewnętrzna para szelek.

zwięzłość tej składni jest kusząca. Jednak jest to uważane za anty-wzorzec.

aby przeczytać więcej o inicjalizacji podwójnego nawiasu klamrowego, zajrzyj do naszego artykułu tutaj.

Nowoczesna Java oferuje kilka opcji tworzenia kolekcji w jednej linii. Metoda, którą wybieramy, jest prawie całkowicie zależna od osobistych preferencji, a nie od technicznego rozumowania.,

ważne jest to, że chociaż wygląda wdzięcznie, anty-wzorzec anonimowej inicjalizacji klasy wewnętrznej (aka double brace) ma wiele negatywnych skutków ubocznych.

jak zawsze, kod jest dostępny na Githubie.

zacznij korzystać z Spring 5 i Spring Boot 2, korzystając z kursu Learn Spring:

>> sprawdź kurs


Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *