Search code examples
javagenericsguava

Lists.newArrayList vs new ArrayList


What is the best construction for creating a List of Strings? Is it Lists.newArrayList() (from guava) or new ArrayList()?

is it just a personal preference?
or is it just Type generic type inference?
or is there any theoretical or practical value in using Lists.newArrayList()?


Solution

  • The guava builder saves typing the type arguments multiple times. Compare:

    List<Foo<Bar, Baz>> list = Lists.newArrayList();
    List<Foo<Bar, Baz>> list = new ArrayList<Foo<Bar, Baz>>();
    

    In Java 7 it's a bit obsolete though, because you have the diamond operator:

    List<Foo<Bar, Baz>> list = new ArrayList<>();