作者ogamenewbie (._.)
看板java
标题Re: [问题] ArrayList
时间Sat Dec 6 18:40:56 2008
※ 引述《howard666 (amin)》之铭言:
: ArrayList<Double> List = new ArrayList<Double>();
Collections < >里面放的必须是 Class,
所以一般的数值型态必须要用 wrap class,
像 int -> Integer, double -> Double.
而不能直接 ArrayList<int> 这样
: List.add(1.0);
: List.add(1.0);
而 Collections 好像本来是不会做 autobox 的.
忘记哪一版改成有,
所以当你直接 add 1.0 这个 double 时,
他会自动帮你 box 成 Double
: System.out.println(List.get(0) = = List.get(1));
但是这边没有什麽 unbox 的关系, 所以就变成 Double 跟 Double 比
可是基本上在 add 那边可能是直接 new Double(1.0) 两次
所以两个 class 用 == 结果就会不一样.
要对 Double 比较内容值是否相同, 要像 String 一样去使用 equals method
如果还有比较大小的需求的话, 可以参考 compareTo method
详细使用参考 Java API
: 结果印出来 答案是false,应该要是true才对....
: 想破头 想不出来
: 也google 爬文过了
: 麻烦各位大大了......
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 218.160.33.86
※ 编辑: ogamenewbie 来自: 218.160.33.86 (12/06 18:43)
1F:推 silver8250:java5.0时加入autoboxing 12/06 19:19
2F:推 howard666:感谢版大!! 12/07 04:09