我尝试从Java中的verctor向量中删除一个元素,并将此向量设置为正确的位置。
所以我试试这个,当然它没有用,因为第(2)行返回Integer:
定义:
Vector<Vector<Integer>> current_domain;
Vector<Integer> t = current_domain.get(k).remove(0);
current_domain.set(k, t);
答案 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返回元素,因此您希望从包含该元素的集合中调用它。