由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
Programming版 - java ArrayList 一问
相关主题
You Don’t Know JS: this & Object Prototypesjava里是不是要避免用clone()有人说clone() is broken.
请教个JAVA的小问题笨笨的问一个JAVA小问题
python一问smart pointer 一问
C, C++, Java, C#, Objective-C,boost::unordered一问
问一下这个cast在java里是怎么work的c++指针的问题
Help - C++ Debug Assertion Failedc/c++程序员转java最好的一本书是什么?
java的内存管理真是气死我了求推荐开发用机器 (转载)
java没有typedef怎么办想成为Mobile App Developer要学些啥?
相关话题的讨论汇总
话题: arraylist话题: double话题: java话题: 打印话题: new
进入Programming版参与讨论
1 (共1页)
b*********n
发帖数: 1258
1
发现一个 ArrayList 很奇怪的现象
一个 ArrayList X
和一个 ArrayList> Y
想要实现: Y = [X, X]
ArrayList X = new ArrayList();
ArrayList> Y = new ArrayList>();
X.add(Double.valueOf(0)); // 先set X
X.add(Double.valueOf(1));
Y.add(X); // 把 X 加入 Y
System.out.println(Y);
X.set(0,Double.valueOf(0.5)); // 然后修改 X :
X.set(1,Double.valueOf(1.5));
Y.add(X); // 再把 X 加入 Y
System.out.println(Y);
应该是第一次打印的 Y 是 : [[0, 1]]
第二次打印的 Y 是 : [[0, 1], [0.5, 1.
P********e
发帖数: 2610
2
That's exactly, why I said, clone method should be on the textbook.
It's pass by value, reference in Java, you did not really create an new
object and add to the Y, you added the reference to the Y.
Do this:
Y.add(X.clone()); //physically clone a copy of X and add it to Y, rather
than reference.
each time.
You'll get what you want.

【在 b*********n 的大作中提到】
: 发现一个 ArrayList 很奇怪的现象
: 一个 ArrayList X
: 和一个 ArrayList> Y
: 想要实现: Y = [X, X]
: ArrayList X = new ArrayList();
: ArrayList> Y = new ArrayList>();
: X.add(Double.valueOf(0)); // 先set X
: X.add(Double.valueOf(1));
: Y.add(X); // 把 X 加入 Y
: System.out.println(Y);

b*********n
发帖数: 1258
3
wow!
这下出来了
太谢谢了!

【在 P********e 的大作中提到】
: That's exactly, why I said, clone method should be on the textbook.
: It's pass by value, reference in Java, you did not really create an new
: object and add to the Y, you added the reference to the Y.
: Do this:
: Y.add(X.clone()); //physically clone a copy of X and add it to Y, rather
: than reference.
: each time.
: You'll get what you want.

1 (共1页)
进入Programming版参与讨论
相关主题
想成为Mobile App Developer要学些啥?问一下这个cast在java里是怎么work的
现在mobile开发,用boostrap,phonegap,还是objective-c + java的多?Help - C++ Debug Assertion Failed
Goodbug再来赌一把1M/s计数器如何?Java实现java的内存管理真是气死我了
java抄了很多obj-c好不好java没有typedef怎么办
You Don’t Know JS: this & Object Prototypesjava里是不是要避免用clone()有人说clone() is broken.
请教个JAVA的小问题笨笨的问一个JAVA小问题
python一问smart pointer 一问
C, C++, Java, C#, Objective-C,boost::unordered一问
相关话题的讨论汇总
话题: arraylist话题: double话题: java话题: 打印话题: new