在执行like时是否为1000个值分配空间 l1.add(1000, "someText1")
? 或者jvm以某种方式优化空间(我不知道这是否可能)以使其更紧凑?
import java.util.ArrayList;
import java.util.List;
class Test
{
public static void main(String[] args)
{
List l1 = new ArrayList<String>(10);
l1.add(1000, "someText1"); // do I increased arrayList to 50 values&?
List l2 = new ArrayList<String>(10);
l2.set(1000, "someText2"); // do I increased arrayList to 50 values&?
}
}
1条答案
按热度按时间kd3sttzy1#
你不是在增加
List
,并且您没有为1000
价值观。你造成了一场灾难IndexOutOfBoundsException
被扔掉,因为1000
是对的无效索引set
(或add
)空的元素List
.两种方法的javadoc都提到了这一点:
void add(int索引,e元素)
indexoutofboundsexception-如果索引超出范围(index<0 | | index>size())
e集(int索引,e元素)
indexoutofboundsexception-如果索引超出范围(index<0 | | index>=size())
add(int index, E element)
只能在现有元素之后立即添加元素。因此index
必须<=文件的原始大小List
.set(int index, E element)
只能替换List
. 因此index
必须小于List
.