List list = new ArrayList();
//添加元素
list.add("fdaf");
list.add("abc");
list.add(123);
list.add(new Date());
System.out.println(list.size());
//输出所有值
for(int i = 0; i < list.size(); i++) {
System.out.print(list.get(i) + "\t");
}
System.out.println();
//移除日期
list.remove(new Date());
System.out.println(list.size());
Q:
注释掉输出所有值时,不能通过此方式remove时间
不注释 输出所有值, 则能够通过此方式remove时间
Answer:
因为源码使用的是equals判断value 是否相同,所以new两个时间,只要足够接近,value就相同,则可以通过equals匹配。
remove是将元素移出container,而不是将其从内存中删除。
网友评论