java 8中初始化list的方法有以下幾種:
// 1 new ArrayList,依次添加元素,這種方式最常見,只是代碼不夠簡潔 List<Object> one = new ArrayList<>(); one.add("1"); one.add("2"); System.out.println(one); // 2 Arrays.asList,一句話就能初始化,簡潔。但是這種方式初始化的list是不可改變的,無法添加和刪除 List<Object> two = Arrays.asList("a","b","c"); // two.add("d"); // 如果想要可變,使用new ArrayList包裝一下 two = new ArrayList<>(Arrays.asList("aa","bb","cc")); two.add("dddd"); System.out.println(two); // 3 {{}},匿名內部類的方式,這種方式降低了代碼可讀性,而且存在內存泄露的風險 List<Object> three = new ArrayList<Object>(){{ add("ni"); add("wo"); add("ta"); }}; three.add("women"); System.out.println(three); // 4 stream,未免大材小用 List<Object> four = Stream.of("ff","gg").collect(Collectors.toList()); four.add("kk"); System.out.println(four);
// 1 new ArrayList,依次添加元素,這種方式最常見,只是代碼不夠簡潔
List<Object> one = new ArrayList<>();
one.add("1");
one.add("2");
System.out.println(one);
// 2 Arrays.asList,一句話就能初始化,簡潔。但是這種方式初始化的list是不可改變的,無法添加和刪除
List<Object> two = Arrays.asList("a","b","c");
// two.add("d");
// 如果想要可變,使用new ArrayList包裝一下
two = new ArrayList<>(Arrays.asList("aa","bb","cc"));
two.add("dddd");
System.out.println(two);
// 3 {{}},匿名內部類的方式
List<Object> three = new ArrayList<Object>(){{
add("ni");
add("wo");
add("ta");
}};
three.add("women");
System.out.println(three);
// 4 stream,未免大材小用
List<Object> four = Stream.of("ff","gg").collect(Collectors.toList());
four.add("kk");
System.out.println(four);