当前位置: 代码迷 >> J2EE >> 奇事,劳烦各位朋友进来看看
  详细解决方案

奇事,劳烦各位朋友进来看看

热度:39   发布时间:2016-04-17 23:23:01.0
怪事,劳烦各位朋友进来看看~


如图,set集合中有4个对象。其中3个对象的type为2,1个对象的type为3 。按代码来说,应该remove掉3个对象,还剩下1个对象。可是如图中所示,遍历前后,set的大小都为4。调试了下,可以看到  it.remove()执行了3次。但依然没有删除的效果。

怎么看都不知道问题在哪啊!求高人指点下。
------解决思路----------------------
没看出来问题
删除之前先打印一下四个对象的主要属性信息,删除之后,再次遍历对象,打印属性信息
看哪些对象没有删除掉,然后判断是哪里出的问题。
clean一下工程,再执行试试看

------解决思路----------------------
你要不要在判断语句中打印信息看看。进没进入判断。判断成立否。
------解决思路----------------------
是否应该在list里移除啊。
------解决思路----------------------
如果执行了remove3次,按理不会size应该不同才对。
Set<String> set = new HashSet<String>();
    for(int i=0;i<6;i++){
     set.add(i+"1");
    }
Iterator<String> it = set.iterator();
while(it.hasNext()){
String a=it.next();
if(a.equals("21")){
it.remove();}
}
System.out.println(set.size());

是不是if语句中判断有误
------解决思路----------------------
如果if能进去的话,应该会异常把,你这类型一样吗,一个String
------解决思路----------------------
没看出什么问题,debug一步一步调试吧。