Initialization of an ArrayList in one line

后端 未结 30 2689
北恋
北恋 2020-11-22 01:10

I wanted to create a list of options for testing purposes. At first, I did this:

ArrayList places = new ArrayList();
places.add(\         


        
30条回答
  •  滥情空心
    2020-11-22 02:02

    You could create a factory method:

    public static ArrayList createArrayList(String ... elements) {
      ArrayList list = new ArrayList();
      for (String element : elements) {
        list.add(element);
      }
      return list;
    }
    
    ....
    
    ArrayList places = createArrayList(
      "São Paulo", "Rio de Janeiro", "Brasília");
    

    But it's not much better than your first refactoring.

    For greater flexibility, it can be generic:

    public static  ArrayList createArrayList(T ... elements) {
      ArrayList list = new ArrayList();
      for (T element : elements) {
        list.add(element);
      }
      return list;
    }
    

提交回复
热议问题