(java)设置向量的大小

时间:2016-02-03 13:17:42

标签: java list vector

我面临一个非常简单的问题:

List<String> myList = new Vector<String>(10);
myList.add(5,"HELLO");

给了我ArrayOutOfBoundException : 5>0

有没有办法指定Vector的大小并按随机顺序填充列表?

2 个答案:

答案 0 :(得分:4)

您没有指定尺寸,而是指定Vector的容量。 你可以做:

List<String> myList = new Vector<String>();
for(int i = 0;i < 10; i++)
    myList.add(null);
myList.set(5, "HELLO");

应该做的是忘记Vector课程,因为它已经过时了10多年。

如果您只需要固定大小和随机访问,则可以使用数组

String[] myArr = new String[10];

如果您需要Collection,可以使用

List<String> myList = Arrays.asList(myArr);

最后,如果你想在其中添加更多元素(Arrays.asList()返回固定大小的列表),你可以使用

List<String> myList = new ArrayList<>(Arrays.asList(myArr));

答案 1 :(得分:1)

add()方法的文档明确指出:

  

ArrayIndexOutOfBoundsException - 如果索引超出范围(索引&lt; 0 || index&gt; size())

由于此刻的大小为0,因此行为符合预期。 Vector类的构造函数指定初始容量,而不是集合的大小。

在查看评论中的内容后,我删除了我的建议。在这种情况下坚持使用数组会更好。