Преобразуване на списък в низ в Java

1. Въведение

В тази бърза статия ще разгледаме как да конвертираме списък с елементи в низ . Това може да е полезно в определени сценарии, като отпечатване на съдържанието на конзолата в удобна за четене форма за проверка / отстраняване на грешки.

2. Стандартно toString () в списък

Един от най-простите начини е просто да извикате метода toString () от списъка :

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

Изход:

[1, 2, 3]

Тази техника вътрешно използва метода toString () за типа на елементите в списъка . В нашия случай използваме типа Integer , който има правилното изпълнение на метода toString () .

Ако използваме нашия персонализиран тип, да речем Person , тогава трябва да се уверим, че класът Person заменя метода toString () и не разчита на изпълнението по подразбиране. Ако методът toString () не е изпълнен правилно, може да получите неочаквани резултати:

[[email protected], [email protected], [email protected]]

3. Изпълнение по поръчка, използващо колектори

Често може да се наложи да покажем изхода в различен формат.

В сравнение с предишния пример, нека заменим запетая (,) с тире (-), а квадратните скоби ([,]) с набор от фигурни скоби ({,}):

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

Изход:

{1-2-3}

В Collectors.joining () метод изисква CharSequence , така че ние трябва да се карта на число на String . Същата идея може да се използва в случай на всеки друг клас, дори когато нямаме достъп до кода на този клас.

4. Използване на външна библиотека

Сега ще видим използването на класа StringUtils на Apache Commons, за да постигнем подобни резултати.

4.1. Зависимост на Maven

 org.apache.commons commons-lang3 3.6 

Най-новата версия на зависимостта може да бъде намерена тук.

4.2. Изпълнение

Реализацията е буквално едно извикване на метод:

@Test public void whenStringUtilsJoin_thenPrintCustom() ")); 

Изход:

1|2|3

Отново, това изпълнение е вътрешно зависимо от изпълнението toString () от типа, който разглеждаме.

5. Заключение

В тази статия видяхме колко лесно е да конвертирате списък в низ, използвайки различни техники.

Както винаги, пълният изходен код за тази статия може да бъде намерен в GitHub.