如果需要将一个ArrayList()集合的所有元素添加到另一个集合中,可以使用Java ArrayList类的addAll()方法。在本文中,我将解释此方法的工作原理并提供一些代码示例。
ArrayList addAll() 方法签名
java.util.ArrayList.addAll方法有两种变体。他们来了。
boolean addAll(Collection<? extends E> c)
如果列表因调用而更改,则此方法返回 true,但最重要的是,它将指定集合的所有元素添加到此列表的末尾,按照它们由指定集合的迭代器返回的顺序。元素 c 是将添加到ArrayList中的列表。如果指定的集合为空, 该方法也会抛出NullPointerException 。
boolean addAll(int index, Collection<? extends E> c)
此方法将指定集合c 中的所有元素插入此列表,从指定位置索引开始。
ArrayList addAll() 语法示例
这是在 Java 程序中调用 ArrayList addAll()方法的样子:
myList.addAll(myNewList))
其中myList是原始ArrayList,myNewList是一个列表,如果存在, 则将其所有值添加到myList 。
myList.addAll(2, myNewList))
具有两个参数的ArrayList addAll()方法 的变体。myNewList中的所有元素将添加到myList中,第一个元素myNewList[0]将变为myList[2],myNewList[1]现在是myList[3],依此类推。原始列表中的元素,从编号 2,被转移到新组合列表的尾部。
ArrayList addAll() 代码示例
现在是一些代码示例的时候了。让我们创建一个朋友列表,并将其称为“朋友”,并在其中添加他们的名字。比如说,我们开始上大学并立即结交了一些新朋友。现在是为他们创建新朋友列表的好时机。时间过去了,你确定你的新朋友是真实的一次,所以你决定将他们移到主要朋友列表中。您可以使用addAll()方法来完成。在程序中,我们会将初始好友列表、新好友列表、更新后的好友列表以及 addAll() 方法返回的布尔值打印到控制台。如果原始列表由于方法的操作而更改,则返回 true,如果未发生,则返回 false。
import java.util.ArrayList;
import java.util.List;
public class AddAllDemo {
public static void main(String[] args) {
List<String> friends = new ArrayList<>();
friends.add("Johnny");
friends.add("Ivy");
friends.add("Rick");
System.out.println(friends);
List<String> newFriends = new ArrayList<>();
newFriends.add("Andrew");
newFriends.add("Alex");
newFriends.add("Neil");
System.out.println(newFriends);
//let's print out the value addAll() method returns
//here it's true because list friends was changed
System.out.println(friends.addAll(newFriends));
System.out.println("My new list with new friends added: ");
System.out.println(friends);
}
}
输出是:
[Johnny, Ivy, Rick] [Andrew, Alex, Neil] 是的 我添加了新朋友的新列表:[Johnny, Andrew, Alex, Neil, Ivy, Rick]
如果我们做同样的操作,但尝试向朋友添加一个空列表,该方法会工作,但它会返回 false,而不是 true,因为原始列表没有改变。
import java.util.ArrayList;
import java.util.List;
public class AddAllDemo3 {
public static void main(String[] args) {
List<String> friends = new ArrayList<>();
friends.add("Johnny");
friends.add("Ivy");
friends.add("Rick");
System.out.println(friends);
List<String> newFriends = new ArrayList<>();
System.out.println(newFriends);
System.out.println(friends.addAll(newFriends));
System.out.println("My new list with new friends added: ");
System.out.println(friends);
}
}
输出是:
[Johnny, Ivy, Rick] [] false 我添加了新朋友的新列表:[Johnny, Ivy, Rick]
现在让我们尝试使用两个参数的addAll()方法。
boolean addAll(int index, Collection<? extends E> c)
让我们再次将新朋友添加到列表中,不是在尾部,而是在中间。假设紧接在 Johnny 之后,在我们的例子中,它是编号为零的元素。
import java.util.ArrayList;
import java.util.List;
public class AddAllDemo2 {
public static void main(String[] args) {
List<String> friends = new ArrayList<>();
friends.add("Johnny");
friends.add("Ivy");
friends.add("Rick");
System.out.println(friends);
List<String> newFriends = new ArrayList<>();
newFriends.add("Andrew");
newFriends.add("Alex");
newFriends.add("Neil");
System.out.println(newFriends);
System.out.println(friends.addAll(1, newFriends));
System.out.println("My new list with new friends added: ");
System.out.println(friends);
}
}
该程序工作的预期结果:Andrew 现在在合并列表中排名第一,Alex - 2,Neil - 3,而之前排名第一的 Ivy 已移至第 4 位。
[Johnny, Ivy, Rick] [Andrew, Alex, Neil] 是的 我添加了新朋友的新列表:[Johnny, Andrew, Alex, Neil, Ivy, Rick]
GO TO FULL VERSION