我设了两个表格jtable1和jtable2,数据都是vector类,比如分别为vector data1和data2.然后data2.addall(data1),所以两个表格内容一样,jtable1不能编辑单元内容,但jtable2可以编辑,不知道为什么编辑jtable2的cell内容,jtable1也改变了,而且是在点击jtable1的窗口时改变。但removerow jtable2中的行时,却有不同步到jtable1中。请高人帮忙解决啊》非常感谢!
调试欢乐多
那么,试想,data1.get(0)与data2.get(0)它们是否得到的是同一个对象呢?
应该是同一个vector因为不是简单类型,所以不是传递副本。因此,你改变了某一个另一个也就同时改变。
至于你说的第二个问题。
data1和data2是两个不同的对象,尽管他们放了一些相同的对象进去。每一个都可独立的增删。
请体会如下代码,以及输出结果public static void main(String[] args) {
Vector<Vector<String>> v1 = new Vector<Vector<String>>();
Vector<Vector<String>> v2 = new Vector<Vector<String>>(); for (int i = 0; i < 10; i++) {
Vector<String> v = new Vector<String>();
for (int j = 0; j < 20; j++) {
v.add(i + " " + j); }
v1.add(v);
} v2.addAll(v1); System.out.println(v1.size());
System.out.println(v2.size()); Vector<String> remove = v1.remove(v1.size() - 1);
System.out.println(v1.size());
System.out.println(v2.size()); System.out.println(remove == v2.get(v2.size() - 1));
}