以更易读的方式在ArrayList中添加元素

emi*_*lly 5 java list arraylist

我在下面的代码片段中添加了元素 ArrayList

List <Integer> myList = new  ArrayList();
myList.add(1);
myList.add(2);
myList.add(3);
myList.add(4);
Run Code Online (Sandbox Code Playgroud)

我正在寻找更加可读和优雅的方式来添加元素ArrayList,如下所示.我知道下面是不允许的,但有没有其他可读/优雅的方式?

myList.add(1).add(2).add(3).add(4)
Run Code Online (Sandbox Code Playgroud)

更新: -我在java 1.6上

jlo*_*rdo 12

在实例化之前知道元素时:

List<Integer> myList = new ArrayList<>(Arrays.asList(1, 2, 3, 4));
Run Code Online (Sandbox Code Playgroud)

或者如果要将它们添加到现有列表中:

List<Integer> myList = new ArrayList<>();
// do stuff
myList.addAll(Arrays.asList(1, 2, 3, 4));
Run Code Online (Sandbox Code Playgroud)

为了使其更具可读性,您可以

import static java.util.Arrays.asList;
Run Code Online (Sandbox Code Playgroud)

并简单地使用

List<Integer> myList = new ArrayList<>(asList(1, 2, 3, 4));
Run Code Online (Sandbox Code Playgroud)

要么

List<Integer> myList = new ArrayList<>();
// do stuff
myList.addAll(asList(1, 2, 3, 4));
Run Code Online (Sandbox Code Playgroud)

如果你知道你永远不想在列表中添加更多元素,你可以简单地写

List<Integer> myList = Arrays.asList(1, 2, 3, 4);
Run Code Online (Sandbox Code Playgroud)

或者使用静态导入:

List<Integer> myList = asList(1, 2, 3, 4);
Run Code Online (Sandbox Code Playgroud)

  • @Anirudh虽然非常优雅. (2认同)
  • @BalázsMáriaNémeth:不,因为他以后无法再向该列表添加任何元素。 (2认同)

Ser*_*hyk 5

番石榴方式(虽然列表是不可变的):

ImmutableList<Integer> myList = ImmutableList.<Integer>builder()
                             .add(1)
                             .add(2)
                             .add(3)
                             .build();
Run Code Online (Sandbox Code Playgroud)

或者这样:

List <Integer> myList = Lists.newArrayList(1,2,3);
Run Code Online (Sandbox Code Playgroud)

或者

List <Integer> myList = Ints.asList(1,2,3);
Run Code Online (Sandbox Code Playgroud)