将多个项目添加到Java数组列表中
评论 0
浏览 0
2018-07-30
1.概述ArrayList。
在这个快速教程中,我们将展示如何向一个已经初始化的ArrayList添加多个项目。
关于ArrayList的使用介绍,请参考这里的这篇文章。
2.全部添加
首先,我们要介绍一种简单的方法,将多个项目添加到ArrayList中。
首先,我们将使用addAll(),它需要一个集合作为它的参数。
List<Integer> anotherList = Arrays.asList(5, 12, 9, 3, 15, 88);
list.addAll(anotherList);
重要的是要记住,在第一个列表中添加的元素将引用与anotherList中的元素相同的对象。
出于这个原因,对其中一个要素的每一次修改都会影响到这两份名单。
3. Collections.addAll
Collections类完全由对集合进行操作或返回集合的静态方法组成。
其中之一是addAll,它需要一个目标列表,要添加的项目可以单独指定,也可以作为一个数组。
这里是一个如何用单个元素使用的例子。
List<Integer> list = new ArrayList<>();
Collections.addAll(list, 1, 2, 3, 4, 5);
还有一个是以两个数组为例来说明操作。
List<Integer> list = new ArrayList<>();
Integer[] otherList = new Integer[] {1, 2, 3, 4, 5};
Collections.addAll(list, otherList);
与上节解释的方式类似,这里的两个列表的内容将指的是相同的对象。
4.使用Java 8
这个版本的Java通过增加新的工具打开了我们的可能性。我们将在接下来的例子中探讨的是Stream。
List<Integer> source = ...;
List<Integer> target = ...;
source.stream()
.forEachOrdered(target::add);
这种方式的主要优点是有机会使用跳过和过滤器。在下一个例子中,我们要跳过第一个元素。
source.stream()
.skip(1)
.forEachOrdered(target::add);
可以根据我们的需要来过滤这些元素。例如,整数值。
source.stream()
.filter(i -> i > 10)
.forEachOrdered(target::add);
最后,在有些情况下,我们希望以一种无效安全的方式工作。对于这些情况,我们可以使用Optional。
Optional.ofNullable(source).ifPresent(target::addAll)
在上面的例子中,我们通过addAll方法,将元素从source添加到target。
5.总结
在这篇文章中,我们探讨了向已经初始化的ArrayList添加多个项目的不同方法。
一如既往,代码样本可以在GitHub上找到。
0 个评论