package com.levelup.java.collections; import static org.junit.Assert.assertEquals; import java.util.List; import java.util.stream.Collectors; import org.apache.commons.lang3.StringUtils; import org.junit.Test; import com.google.common.base.Joiner; import com.google.common.collect.Lists; /** * This java example will demonstrate printing a List<String * with a delimiter. AKA pretty printing a list. * * @author Justin Musgrove * @see <a href='http://www.leveluplunch.com/java/examples/print-list/'>Print list</a> * */ public class PrintList { private List<String> programmingLanguages = Lists.newArrayList("java", "python", "ruby", "groovy"); private String languagesSeperatedByComma = "java,python,ruby,groovy"; /** * Method will join separator to all elements in * string array. This could be easily modified to * to a list * * @param join * @param strings * @return */ private static String join(String separator, String... strings) { if (strings == null || strings.length == 0) { return ""; } else if (strings.length == 1) { return strings[0]; } else { StringBuilder sb = new StringBuilder(); sb.append(strings[0]); for (int i = 1; i < strings.length; i++) { sb.append(separator).append(strings[i]); } return sb.toString(); } } @Test public void join_elements_in_list_java () { String elementsJoined = join(",", programmingLanguages.toArray(new String[programmingLanguages.size()])); assertEquals(languagesSeperatedByComma, elementsJoined); } @Test public void join_elements_in_list_java8 () { String elementsJoined = programmingLanguages .stream() .collect(Collectors.joining(",")); assertEquals(languagesSeperatedByComma, elementsJoined); } @Test public void join_elements_in_list_guava () { String elementsJoined = Joiner.on(",").join(programmingLanguages); assertEquals(languagesSeperatedByComma, elementsJoined); } @Test public void join_elements_in_list_apache_commons () { String elementsJoined = StringUtils.join(programmingLanguages, ","); assertEquals(languagesSeperatedByComma, elementsJoined); } @Test public void join_elements_in_list_spring () { String elementsJoined = org.springframework.util .StringUtils.collectionToDelimitedString(programmingLanguages, ","); assertEquals(languagesSeperatedByComma, elementsJoined); } }