package com.levelup.java.guava; import static org.hamcrest.CoreMatchers.hasItems; import static org.hamcrest.collection.IsIterableContainingInOrder.contains; import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertThat; import java.util.List; import org.junit.Test; import com.google.common.base.Function; import com.google.common.collect.Lists; /** * This java example will demonstrate common usages of * Google Guava Lists Utility. * * @author Justin Musgrove * @see <a href='http://www.leveluplunch.com/java/examples/guava-lists-utility-example/'>Guava Lists Example</a> */ public class ListsExample { /** * Create new list */ @Test public void create_new_list () { List<String> myList = Lists.newArrayList(); assertNotNull(myList); } /** * Create new list w/ parameters */ @Test public void create_new_list_with_parameters () { List<String> myList = Lists.newArrayList("one", "two"); assertNotNull(myList); } /** * Create list with capacity */ @Test public void create_new_list_with_capacity () { List<String> listWithSize10 = Lists.newArrayListWithCapacity(10); assertNotNull(listWithSize10); } /** * Create new list w/ expected size */ @Test public void create_new_list_with_expected_size () { List<String> listWithSize10 = Lists.newArrayListWithExpectedSize(10); assertNotNull(listWithSize10); } /** * New unmodifiable list from varargs */ @Test public void create_new_unmodified_list () { String[] vals = {"test1", "test2"}; List<String> myList = Lists.asList("test0", vals); assertNotNull(myList); } /** * Partition list */ @Test public void partition_list () { List<String> myList = Lists.newArrayList("one", "two", "three"); List<List<String>> myListBy1 = Lists.partition(myList, 1); assertThat(myListBy1.get(0), hasItems("one")); assertThat(myListBy1.get(1), hasItems("two")); assertThat(myListBy1.get(2), hasItems("three")); } /** * Reverse list */ @Test public void reverse_list () { List<String> myList = Lists.newArrayList("one", "two", "three"); List<String> reverseMyList = Lists.reverse(myList); assertThat(reverseMyList, contains( "three", "two", "one")); } /** * Tranform elements in list */ @Test public void tranform_elements_in_list () { List<String> numbersAsStrings = Lists.newArrayList( "1", "2", "3"); List<Double> doubles = Lists.transform(numbersAsStrings, new Function<String, Double>() { @Override public Double apply(String input) { return new Double(input); } }); assertThat(doubles, contains( new Double(1), new Double(2), new Double(3))); } }