package com.levelup.java.array; import static org.junit.Assert.assertEquals; import java.util.Arrays; import java.util.List; import org.apache.commons.lang3.ArrayUtils; import org.apache.log4j.Logger; import org.junit.Test; import com.google.common.collect.Lists; import com.google.common.primitives.Doubles; /** * This java example will demonstrate converting a collection to array * * @author Justin Musgrove * @see <a href='http://www.leveluplunch.com/java/examples/convert-collection-to-array/'>Convert collection to array</a> * */ public class ConvertCollectionToArray { private static final Logger logger = Logger.getLogger(ConvertCollectionToArray.class); @Test public void convert_collection_of_strings_to_array_with_java () { List<String> searchEnginesAsList = Lists.newArrayList("Google", "Bing", "Yahoo", "Ask", "AOL"); String[] searchEngines = searchEnginesAsList.toArray(new String[searchEnginesAsList.size()]); logger.info(Arrays.toString(searchEngines)); assertEquals(5, searchEngines.length); } @Test public void convert_collection_of_primitives_to_array_with_java () { List<Double> searchEngineMarketShare = Lists.newArrayList(); searchEngineMarketShare.add(67.1); searchEngineMarketShare.add(16.9); searchEngineMarketShare.add(11.8); searchEngineMarketShare.add(2.7); searchEngineMarketShare.add(1.6); double [] searchEngineMarketShareArray = new double[searchEngineMarketShare.size()]; for (int x=0; x <= searchEngineMarketShare.size() - 1; x ++) { searchEngineMarketShareArray[x] = searchEngineMarketShare.get(x); } logger.info(Arrays.toString(searchEngineMarketShareArray)); assertEquals(5, searchEngineMarketShareArray.length); } @Test public void convert_collection_of_primitives_to_array_with_java8 () { List<Double> searchEngineMarketShare = Lists.newArrayList(); searchEngineMarketShare.add(67.1); searchEngineMarketShare.add(16.9); searchEngineMarketShare.add(11.8); searchEngineMarketShare.add(2.7); searchEngineMarketShare.add(1.6); double [] searchEngineMarketShareArray = searchEngineMarketShare .stream() .mapToDouble(Double::doubleValue) .toArray(); logger.info(Arrays.toString(searchEngineMarketShareArray)); assertEquals(5, searchEngineMarketShareArray.length); } @Test public void convert_collection_of_objects_to_primitive_array_with_guava () { List<Double> searchEngineMarketShare = Lists.newArrayList(); searchEngineMarketShare.add(67.1); searchEngineMarketShare.add(16.9); searchEngineMarketShare.add(11.8); searchEngineMarketShare.add(2.7); searchEngineMarketShare.add(1.6); double[] searchEngineMarketShareArray = Doubles.toArray(searchEngineMarketShare); logger.info(Arrays.toString(searchEngineMarketShareArray)); assertEquals(5, searchEngineMarketShareArray.length); } @Test public void convert_collection_of_objects_to_array_with_apachecommons () { List<Double> searchEngineMarketShare = Lists.newArrayList(); searchEngineMarketShare.add(67.1); searchEngineMarketShare.add(16.9); searchEngineMarketShare.add(11.8); searchEngineMarketShare.add(2.7); searchEngineMarketShare.add(1.6); Double[] searchEngineMarketShareDoubleArray = searchEngineMarketShare .toArray(new Double[searchEngineMarketShare.size()]); double[] searchEngineMarketShareArray = ArrayUtils.toPrimitive(searchEngineMarketShareDoubleArray); logger.info(Arrays.toString(searchEngineMarketShareArray)); assertEquals(5, searchEngineMarketShareArray.length); } }