Pretvaranje popisa u niz u Javi

1. Uvod

U ovom ćemo kratkom članku pogledati kako pretvoriti Popis elemenata do a Niz. To bi moglo biti korisno u određenim scenarijima, poput ispisa sadržaja na konzolu u čitljivom obliku za inspekciju / uklanjanje pogrešaka.

2. Standardno toString () na a Popis

Jedan od najjednostavnijih načina je jednostavno nazvati toString () metoda na Popis:

@Test public void whenListToString_thenPrintDefault () {Popis intLIst = Arrays.asList (1, 2, 3); System.out.println (intLIst); }

Izlaz:

[1, 2, 3]

Ova tehnika interno koristi toString () metoda vrste elemenata unutar Popis. U našem slučaju koristimo Cijeli broj tip koji ima pravilnu provedbu toString () metoda.

Ako koristimo svoj prilagođeni tip, recimo, Osoba, tada moramo biti sigurni da je Osoba klasa nadjačava toString () metoda i ne oslanja se na zadanu implementaciju. Ako je toString () metoda nije pravilno implementirana, mogli biste dobiti neočekivane rezultate:

[[e-pošta zaštićena], [e-pošta zaštićena], [e-pošta zaštićena]]

3. Korištenje prilagođene implementacije Kolekcionari

Često ćemo možda morati prikazati izlaz u drugom formatu.

U usporedbi s prethodnim primjerom, zamijenimo zarez (,) crticom (-), a uglate zagrade ([,]) skupom kovrčavih zagrada ({,}):

@Test javna praznina whenCollectorsJoining_thenPrintCustom () {Popis intList = Arrays.asList (1, 2, 3); Rezultat niza = intList.stream () .map (n -> String.valueOf (n)) .collect (Collectors.joining ("-", "{", "}")); System.out.println (rezultat); }

Izlaz:

{1-2-3}

The Kolekcionari.joining () metoda zahtijeva a CharSequence, pa moramo karta the Cijeli broj do Niz. Ista ideja može se koristiti u slučaju bilo koje druge klase čak i kada nemamo pristup kodu te klase.

4. Korištenje vanjske knjižnice

Sad ćemo vidjeti upotrebu Apache Commons ' StringUtils razreda kako bi se postigli slični rezultati.

4.1. Ovisnost Mavena

 org.apache.commons commons-lang3 3.6 

Najnoviju verziju ovisnosti možete pronaći ovdje.

4.2. Provedba

Implementacija je doslovno jedan poziv metode:

@Test public void whenStringUtilsJoin_thenPrintCustom () ")); 

Izlaz:

1|2|3

Opet, ova provedba interno ovisi o toString () provedba tipa koji razmatramo.

5. Zaključak

U ovom smo članku vidjeli kako je lako pretvoriti Popis do a Niz koristeći različite tehnike.

Kao i uvijek, puni izvorni kod za ovaj članak nalazi se na GitHubu.