访问矢量元素

时间:2014-05-19 11:28:20

标签: java vector initialization

我想将一些整数放入Vector并在此之后访问它们。 我在Java Eclipse剪贴簿中的代码如下所示:

java.util.Vector<> dp;
dp = new java.util.Vector(5);
dp.insertElementAt(new Integer(1));
dp.insertElementAt(new Integer(3));

for(int i =0; i< dp.size(); i++)
{

int lastint = ((Number) dp.lastElement()).intValue();
System.out.println("Element"  + lastint);

}

我收到此错误:“类型为Vector的参数数量不正确;无法使用参数&lt;&gt;参数化”但是我在教程中做到了,所以我不知道为什么会这样。

4 个答案:

答案 0 :(得分:3)

您必须声明要在Vector中存储的元素的类型:

Vector<Integer> dp = new Vector<Integer>(5);

在Java 7中,您可以使用Diamond语法:

Vector<Integer> dp = new Vector<>(5);

但请记住,<>语法只能用于实现而不是引用。

顺便说一下,你不应该使用Vector类,它已经过时了。 如果您不需要线程安全,可以使用ArrayList;如果需要,可以使用CopyOnWriteArrayList(或Collections.synchronizedList())。

答案 1 :(得分:0)

替换此行

java.util.Vector<> dp;

有了这个:

java.util.Vector<Integer> dp;

定义新变量时,不能将<>留空。编译器必须知道它将使用哪个calss。

答案 2 :(得分:0)

一堆问题。你应该写:

java.util.Vector<Integer> dp;

宣布矢量时。您可以使用

进行初始化
dp = new java.util.Vector<>(5);

如果您使用Java 7或更高版本。否则:

dp = new java.util.Vector<Integer>(5);

此外:

dp.insertElementAt(new Integer(1));

insertElementAt需要两个参数,即要插入的索引和实际值。但要小心!您创建了容量为5而不是大小为5的向量。因此除 insertElementAt(someValue,0)之外的任何内容都将抛出 ArrayIndexOutOfBoundsException 。请参阅链接的javadoc以了解确切的行为。

答案 3 :(得分:0)

这是您在Java 5.0(2004)或更高版本中编写它的方法。

List<Integer> db = new ArrayList<Integer>();
db.add(1);
db.add(3);

for(int i : db)
    System.out.println("Element"  + i);

你可以看到这个更清洁,自Java 7(2011)以来你可以写

List<Integer> db = new ArrayList<>();
  

Vector类型的参数数量不正确;它不能使用参数&lt;&gt;

进行参数化

如果您的IDE设置为Java 1.4或更早版本,则会发生这种情况。如果您有一个非常古老的JDK(超过十年),您也会收到此错误。尽量确保您拥有最新版本的Java,例如Java 8更新5并将IDE设置为期望Java 8代码。