我尝试从 Java 中的 verctors 向量中删除一个元素,并将该向量设置为正确的位置。
所以我尝试了这个,当然它没有工作,因为第 (2) 行返回整数:
定义:
Vector<Vector<Integer>> current_domain;
Vector<Integer> t = current_domain.get(k).remove(0);
current_domain.set(k, t);
我尝试从 Java 中的 verctors 向量中删除一个元素,并将该向量设置为正确的位置。
所以我尝试了这个,当然它没有工作,因为第 (2) 行返回整数:
定义:
Vector<Vector<Integer>> current_domain;
Vector<Integer> t = current_domain.get(k).remove(0);
current_domain.set(k, t);
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);
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
.
您需要从逻辑上考虑每个阶段返回的内容。拆分事情以帮助您,并为变量提供正确、有用的名称:
Vector<Integer> subVector = current_domain.get(k);
Integer intVal = subVector.remove(0);
//... now, what do you actually want to do with the integer?
顺便说一句,您正在使用一种非常奇怪的数据结构,无论您使用它做什么都可能效率低下(尽管您努力的目的也不是很清楚)。
您是否正在尝试这样做:
Vector<Vector<Integer>> current_domain;
Vector<Integer> t = current_domain.remove(k);
// do something to t
current_domain.set(k, t);
? Remove 返回元素,因此您想从包含该元素的集合中调用它。