从矢量矢量中删除元素

时间:2012-11-22 17:35:00

标签: java

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

所以我试试这个,当然它没有用,因为第(2)行返回Integer:

定义:

   
Vector<Vector<Integer>> current_domain;

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

4 个答案:

答案 0 :(得分: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);

答案 1 :(得分:1)

Vector<Vector<Integer>> current_domain;

对于上面的Vector: -

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

答案 2 :(得分:0)

您需要从逻辑上思考每个阶段返回的内容。将事情分开来帮助你,并给出变量正确,有用的名称:

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

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

答案 3 :(得分:0)

你是否想要这样做:

Vector<Vector<Integer>> current_domain;

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

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

相关问题