Een lijst converteren naar een string in Java

1. Inleiding

In dit korte artikel zullen we bekijken hoe u een Lijst van elementen naar een Draad. Dit kan handig zijn in bepaalde scenario's, zoals het afdrukken van de inhoud naar de console in een voor mensen leesbare vorm voor inspectie / foutopsporing.

2. Standaard toString () op een Lijst

Een van de eenvoudigste manieren is om gewoon de toString () methode op de Lijst:

@Test openbare leegte whenListToString_thenPrintDefault () {List intLIst = Arrays.asList (1, 2, 3); System.out.println (intLIst); }

Uitgang:

[1, 2, 3]

Deze techniek maakt intern gebruik van de toString () methode van het type van de elementen binnen de Lijst. In ons geval gebruiken we de Geheel getal type met een juiste implementatie van het toString () methode.

Als we ons aangepaste type gebruiken, bijvoorbeeld Persoon, dan moeten we ervoor zorgen dat de Persoon klasse overschrijft de toString () methode en is niet afhankelijk van de standaardimplementatie. Als het toString () methode niet correct is geïmplementeerd, kunt u onverwachte resultaten krijgen:

[[e-mail beschermd], [e-mail beschermd], [e-mail beschermd]]

3. Aangepaste implementatie met behulp van Verzamelaars

Vaak moeten we de uitvoer in een ander formaat weergeven.

Laten we in vergelijking met het vorige voorbeeld de komma (,) vervangen door een koppelteken (-) en de vierkante haken ([,]) door een set accolades ({,}):

@Test openbare leegte whenCollectorsJoining_thenPrintCustom () {List intList = Arrays.asList (1, 2, 3); String resultaat = intList.stream () .map (n -> String.valueOf (n)) .collect (Collectors.joining ("-", "{", "}")); System.out.println (resultaat); }

Uitgang:

{1-2-3}

De Collectors.joining () methode vereist een CharSequence, dus we moeten kaart de Geheel getal naar Draad. Hetzelfde idee kan worden gebruikt in het geval van een andere klasse, zelfs als we geen toegang hebben tot de code van die klasse.

4. Met behulp van een externe bibliotheek

We zullen nu het gebruik van Apache Commons zien ' StringUtils klasse om dezelfde resultaten te bereiken.

4.1. Afhankelijkheid van Maven

 org.apache.commons commons-lang3 3.6 

De laatste versie van de afhankelijkheid is hier te vinden.

4.2. Implementatie

De implementatie is letterlijk een enkele methodeaanroep:

@Test openbare ongeldigheid whenStringUtilsJoin_thenPrintCustom () ")); 

Uitgang:

1|2|3

Nogmaals, deze implementatie is intern afhankelijk van het toString () implementatie van het type dat we overwegen.

5. Conclusie

In dit artikel hebben we gezien hoe gemakkelijk het is om een Lijst naar een Draad met behulp van verschillende technieken.

Zoals altijd is de volledige broncode voor dit artikel te vinden op GitHub.