为什么此 ArrayList 'add' 操作不添加新元素?



当我运行这段代码时,我希望在数组列表的第0个索引处添加一个元素,字符串"Hi"当我在第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"。如果您检查参考文档,add(E element)返回boolean,这就是为什么您实际上得到true而不是Hi

最新更新