-3

我尝试从 Java 中的 verctors 向量中删除一个元素,并将该向量设置为正确的位置。

所以我尝试了这个,当然它没有工作,因为第 (2) 行返回整数:

定义:

Vector<Vector<Integer>> current_domain;

Vector<Integer> t = current_domain.get(k).remove(0);
current_domain.set(k, t);
4

4 回答 4

1
Vector<Integer> t = current_domain.get(k).remove(0);

current_domain.get(k)-->returns a Vector<Integer>

Vector<Integer>.remove(0)---> returns an Integer

尝试 :

Vector<Vector<Integer>> current_domain=null;
Vector<Integer> t = current_domain.get(0);
t.remove(0);
于 2012-11-22T17:39:09.663 回答
1
Vector<Vector<Integer>> current_domain;

对于上述向量:-

current_domain.get(k)

返回一个Vector<Integer>。当你remove(0)在它上面使用时,你会得到一个integer,你不能分配给一个Vector

此外,当您使用: -

current_domain.get(k).remove(0);

它会自动修改你的vector。所以你不需要再次设置它。

    Vector<Vector<Integer>> current_domain = new Vector<Vector<Integer>>();

    Vector<Integer> vect = new Vector<Integer>();
    vect.add(4);
    vect.add(5);

    current_domain.add(vect);
    current_domain.get(0).remove(0);

    System.out.println(current_domain);

输出 : -

[[5]]

所以,你可以看到它Vector被修改了。


作为旁注,我建议使用ArrayList而不是Vector.

于 2012-11-22T17:39:42.497 回答
0

您需要从逻辑上考虑每个阶段返回的内容。拆分事情以帮助您,并为变量提供正确、有用的名称:

Vector<Integer> subVector = current_domain.get(k);
Integer intVal = subVector.remove(0);
//... now, what do you actually want to do with the integer?

顺便说一句,您正在使用一种非常奇怪的数据结构,无论您使用它做什么都可能效率低下(尽管您努力的目的也不是很清楚)。

于 2012-11-22T17:38:40.953 回答
0

您是否正在尝试这样做:

Vector<Vector<Integer>> current_domain;

Vector<Integer> t = current_domain.remove(k);
// do something to t
current_domain.set(k, t);

? Remove 返回元素,因此您想从包含该元素的集合中调用它。

于 2012-11-22T17:39:06.390 回答