[英]Adding An ArrayList To Another ArrayList
我目前正在研究Java程序員1證書 ,下面的代碼片段是有關將ArrayList添加到另一個證書的。
ArrayList<String> myArrList = new ArrayList<String>();
myArrList.add("One");
myArrList.add("Two");
ArrayList<String> yourArrList = new ArrayList<String>();
yourArrList.add("Three");
yourArrList.add("Four");
myArrList.addAll(1, yourArrList);
for (String val : myArrList)
System.out.println(val);
這就是作者的話:
如果您修改這些列表myArrList和yourArrList中的公共對象引用,會發生什么情況? 這里有兩種情況:
在第一個中,使用兩個列表之一重新分配對象引用。 在這種情況下,第二個列表中的值將保持不變。
在第二種情況下,您將修改任何公共列表元素的內部,在這種情況下,更改將反映在兩個列表中。
作者想說什么? 我對他提到的兩個案例感到有些困惑!
任何幫助將不勝感激。
我想我知道作者想說什么。 但是字符串是一個不好的例子。 想象一下這樣的事情。 他正在解釋將類的兩個不同實例添加到列表,或將相同實例添加到兩個列表之間的區別。 當您將相同實例添加到兩個列表中時,如果修改該實例,更改將反映在兩個列表中。
import java.util.ArrayList;
public class Example {
private static class Node {
private int value;
public Node(final int value) {
this.value = value;
}
public int getValue() {
return value;
}
public void setValue(final int value) {
this.value = value;
}
}
public static void main(final String... args) {
final ArrayList<Node> nodes1 = new ArrayList<>();
final ArrayList<Node> nodes2 = new ArrayList<>();
// add two different Node objects that happen to have same value
nodes1.add(new Node(1337));
nodes2.add(new Node(1337));
Node node = new Node(69);
// add the same node to both lists
nodes1.add(node);
nodes2.add(node);
node.setValue(420);
// do your join here and print result to see {1337, 420, 1337, 420}
nodes1.addAll(0, nodes2);
for (final Node n : nodes1)
System.out.println(n.getValue());
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.