在 Java 中初始化 ArrayList

培训教学 潘老师 7个月前 (09-26) 215 ℃ (0) 扫码查看

Java中的ArrayList代表一个可调整大小的对象数组,允许我们添加、删除、查找、排序和替换元素。ArrayList是集合框架的一部分,并实现了List接口。

根据需求,我们可以以多种方式初始化ArrayList。在本教程中,我们将学习如何基于一些常见用例初始化ArrayList。

//快速参考
// 1 - 初始容量为10的空ArrayList
ArrayList<String> list = new ArrayList<>();
//2 - 初始容量为64的空ArrayList
ArrayList<String> list = new ArrayList<>( 64 );
//3 -在一行中初始化并填充arraylis
ArrayList<String> names = new ArrayList<>( Arrays.asList(...) );
ArrayList<String> names = new ArrayList<>( List.of(...) );
//4 - 从现有集合初始化arraylist
 ArrayList<String> list = new ArrayList<>( collection );
//5 - Collect stream elements
List<String> list = stream.collect(Collectors.toCollection(ArrayList::new));

1.一行代码初始化ArrayList

通过不同语句创建和初始化ArrayList有时会生成不必要的样板代码。我们可以使用以下方式优化ArrayList的创建。

ArrayList<String> names = new ArrayList<>( Arrays.asList("a", "b", "c") );

1.1. 使用Arrays.asList()从数组初始化ArrayList

要在一行语句中初始化ArrayList,可以使用Arrays.asList方法获取数组中的所有元素,并将数组参数传递给ArrayList构造函数。

1.2. 使用List.of() [Java 9及以上]

我们可以使用List.of()静态工厂方法创建不可修改的列表。唯一的缺点是这些列表不支持add()操作。

ArrayList<String> names = new ArrayList<>( List.of("a", "b", "c") );

2.使用构造函数初始化ArrayList

使用ArrayList构造函数是传统的方法。我们可以使用无参数构造函数来初始化一个空的ArrayList(具有默认的初始容量为10),并使用add()方法向列表中添加元素。

ArrayList<String> names = new ArrayList<>();
//一次添加1个元素
names.add("a");   
names.add("b");
names.add("c");

可选地,ArrayList构造函数可以接受一个可选参数initialCapacity,它必须是正整数,并表示列表的初始容量。初始容量表示ArrayList在不调整其内部数组大小的情况下可以容纳的元素数量。

以下示例创建了一个具有初始容量为64的整数ArrayList。这意味着在添加第65个元素时会发生列表大小调整。通过避免调整操作,我们可以提高前64个元素的性能。

ArrayList<Integer> list = new ArrayList<>(64);

我们可以逐个添加元素,也可以传递另一个集合以一次性使用addAll()方法添加元素。这在使用值或来自其他任何类型的集合的现有对象初始化ArrayList时非常有用。

HashMap<String, Integer> details = new HashMap<>();
details.put("keanu", 23);
details.put("max", 24);
details.put("john", 53);
//在ArrayList中添加多个元素
names.addAll(details.keySet());  

3.从Java 8 Stream初始化ArrayList

Stream代表允许以函数式编程风格在对象集合上执行操作的元素序列。我们还可以将流中的对象收集到一个新的ArrayList中。

Stream<String> stream = Stream.of("a", "b", "c");
ArrayList<String> stringList = stream
  //执行流操作
  .collect(Collectors.toCollection(ArrayList::new));

这就是有关在Java中初始化ArrayList的全部内容。如果您有问题,请在评论中提出。


版权声明:本站文章,如无说明,均为本站原创,转载请注明文章来源。如有侵权,请联系博主删除。
本文链接:https://www.panziye.com/teach/9277.html
喜欢 (0)
请潘老师喝杯Coffee吧!】
分享 (0)
用户头像
发表我的评论
取消评论
表情 贴图 签到 代码

Hi,您需要填写昵称和邮箱!

  • 昵称【必填】
  • 邮箱【必填】
  • 网址【可选】