为什么这个 ArrayList 'add' 操作没有添加新元素?
Why does this ArrayList 'add' operation not add the new element?
当我 运行 这段代码时,我希望将具有一个元素(字符串“Hi”)的 ArrayList 添加到 ArrayList 的第 0 个索引处。当我打印第 0 个索引处的元素时,我没有得到“Hi”,而是得到 true。我不知道如何解释这个结果。
package dataTypes;
import java.util.ArrayList;
public class DataTypes {
public static void main(String[] args) {
ArrayList myUnsafeArrayList = new ArrayList();
myUnsafeArrayList.add("hello");
myUnsafeArrayList.add(100);
myUnsafeArrayList.add("end");
System.out.println("Before add: " + myUnsafeArrayList.get(0));
myUnsafeArrayList.add(0, ((new ArrayList()).add("Hi")));
System.out.println("After add: " + myUnsafeArrayList.get(0));
}
}
这是我得到的输出:
Before add: hello
After add: true
这就是您要查找的内容:
public class DataTypes {
public static void main(String[] args) {
ArrayList myUnsafeArrayList = new ArrayList();
myUnsafeArrayList.add("hello");
myUnsafeArrayList.add(100);
myUnsafeArrayList.add("end");
System.out.println("Before add: " + myUnsafeArrayList.get(0));
myUnsafeArrayList.add(0, Arrays.asList("Hi"));
System.out.println("After add: " + myUnsafeArrayList.get(0));
}
}
原因是 myUnsafeArrayList.add(0, ((new ArrayList()).add("Hi")));
你说的是“将 ((new ArrayList()).add("Hi"))
的结果添加到 myUnsafeArrayList
的索引 0”。如果您检查 reference documentation add(E element)
returns a boolean
这就是为什么您实际上得到 true
而不是 Hi
.
当我 运行 这段代码时,我希望将具有一个元素(字符串“Hi”)的 ArrayList 添加到 ArrayList 的第 0 个索引处。当我打印第 0 个索引处的元素时,我没有得到“Hi”,而是得到 true。我不知道如何解释这个结果。
package dataTypes;
import java.util.ArrayList;
public class DataTypes {
public static void main(String[] args) {
ArrayList myUnsafeArrayList = new ArrayList();
myUnsafeArrayList.add("hello");
myUnsafeArrayList.add(100);
myUnsafeArrayList.add("end");
System.out.println("Before add: " + myUnsafeArrayList.get(0));
myUnsafeArrayList.add(0, ((new ArrayList()).add("Hi")));
System.out.println("After add: " + myUnsafeArrayList.get(0));
}
}
这是我得到的输出:
Before add: hello
After add: true
这就是您要查找的内容:
public class DataTypes {
public static void main(String[] args) {
ArrayList myUnsafeArrayList = new ArrayList();
myUnsafeArrayList.add("hello");
myUnsafeArrayList.add(100);
myUnsafeArrayList.add("end");
System.out.println("Before add: " + myUnsafeArrayList.get(0));
myUnsafeArrayList.add(0, Arrays.asList("Hi"));
System.out.println("After add: " + myUnsafeArrayList.get(0));
}
}
原因是 myUnsafeArrayList.add(0, ((new ArrayList()).add("Hi")));
你说的是“将 ((new ArrayList()).add("Hi"))
的结果添加到 myUnsafeArrayList
的索引 0”。如果您检查 reference documentation add(E element)
returns a boolean
这就是为什么您实际上得到 true
而不是 Hi
.