【发布时间】:2011-05-21 22:03:48
【问题描述】:
ArrayList 有 remove(int index) 和 remove(Object o),所以
我尝试运行以下代码: public static void main(String args[]){
ArrayList<Long>ar=new ArrayList<Long>();
ar.add(11L);
ar.add(22L);
ar.add(33L);
ar.remove(new Integer(33)); // 1
byte b =0;
ar.remove(b); //2
for(Iterator i=ar.iterator(); i.hasNext();)
{
System.out.println(i.next());
}
}
结果我有:
22
33
我的问题:
在第 1 行参数 Integer - 为什么我们没有异常?
第 2 行 - 参数字节 - 它不是 int 也不是 Object,为什么又不是 Exception?
【问题讨论】:
-
所以,如果我对第 1 行的理解正确,我们会遇到这种情况:在我们的列表中,我们有 Long,所以当我们尝试运行 remove 方法时,我们有:If(Integer.equals(Long)) 返回false,我们的列表未修改。
-
和下一个。字节 -> 整数。这是正确的。但如果我这样做:long b =4654654654654654654L; long to int - 不可能。