Prevod zoznamu na reťazec v Jave
1. Úvod
V tomto rýchlom článku sa pozrieme na to, ako previesť a Zoznam prvkov do a String. To môže byť užitočné v určitých scenároch, ako je napríklad tlač obsahu na konzolu v podobe čitateľnej pre človeka na kontrolu / ladenie.
2. Štandardné natiahnuť() na a Zoznam
Jedným z najjednoduchších spôsobov je jednoducho zavolať na natiahnuť() metóda na Zoznam:
@Test public void whenListToString_thenPrintDefault () {List intLIst = Arrays.asList (1, 2, 3); System.out.println (intLIst); }
Výkon:
[1, 2, 3]
Táto technika interne využíva natiahnuť() metóda typu prvkov v rámci Zoznam. V našom prípade používame Celé číslo typu, ktorý má správnu implementáciu natiahnuť() metóda.
Ak používame náš vlastný typ, povedzme, Osoba, potom sa musíme uistiť, že Osoba trieda prepíše natiahnuť() metóda a nespolieha sa na predvolenú implementáciu. Ak natiahnuť() metóda nie je správne implementovaná, môžete získať neočakávané výsledky:
[[chránené e-mailom], [chránené e-mailom], [chránené e-mailom]]
3. Používanie vlastnej implementácie Zberatelia
Často možno budeme musieť výstup zobraziť v inom formáte.
V porovnaní s predchádzajúcim príkladom nahraďte čiarku (,) spojovníkom (-) a hranaté zátvorky ([,]) sadou zložených zátvoriek ({,}):
@Test public void whenCollectorsJoining_thenPrintCustom () {List intList = Arrays.asList (1, 2, 3); Výsledok reťazca = intList.stream () .map (n -> String.valueOf (n)) .collect (Collectors.joining ("-", "{", "}")); System.out.println (výsledok); }
Výkon:
{1-2-3}
The Collectors.joining () metóda vyžaduje a CharSequence, takže musíme mapa the Celé číslo do String. Rovnaký nápad je možné použiť v prípade akejkoľvek inej triedy, aj keď nemáme prístup k kódu tejto triedy.
4. Používanie externej knižnice
Teraz uvidíme využitie Apache Commons StringUtils triedy na dosiahnutie podobných výsledkov.
4.1. Maven závislosť
org.apache.commons commons-lang3 3.6
Najnovšiu verziu závislosti nájdete tu.
4.2. Implementácia
Implementácia je doslova jediným volaním metódy:
@Test public void whenStringUtilsJoin_thenPrintCustom () "));
Výkon:
1|2|3
Táto implementácia je opäť vnútorne závislá od natiahnuť() implementáciu typu, o ktorom uvažujeme.
5. Záver
V tomto článku sme videli, aké ľahké je previesť a Zoznam do a String pomocou rôznych techník.
Celý zdrojový kód tohto článku nájdete ako vždy na GitHub.