Collection方法集合-remove

/*
boolean remove(Object o)
remove和contains方法都想需要集合中的元素重写equals方法
因为Object中的equals方法比较的是内存地址,在现实的业务逻辑当中
不能比较内存地址,应该比较内容

*/


import java.util.*;


public class fuck5{

public static void main(String[] main){

//1.创建集合
Collection c=new LinkedList();

//2.创建Integer类型的对象
Integer i1=new Integer(10);

//3.添加元素
c.add(i1);
System.out.println(c.contains(i1));

Integer i2=new Integer(10);
c.remove(i2);
System.out.println(c.size());//o

manager m1=new manager(11,"jack");
c.add(m1);

manager m2=new manager(11,"jack");
c.remove(m2);
System.out.println(c.size());//0
//我原来以为这里不需要重写equals方法
//现在意识到只有重写equals方法,m1和m2才是真正意义上的等同


}
}





class manager{

int num;
String name;

manager(int num,String name){
this.num=num;
this.name=name;

}
public boolean equals(Object o){
if(this==o) return true;
if(o instanceof manager){
manager m=(manager) o;
if(m.num==this.num&&m.name.equals(this.name)){
return true;
}
}
return false;
}

}


/*
深入remove方法
1.迭代器的remove方法
2.集合自身的remove()方法
*/


import java.util.*;


public class fuck6{

public static void main(String[] args){

Collection c=new LinkedList();

c.add(1);
c.add(2);
c.add(3);

Iterator it=c.iterator();

//建议使用这种方法
/*这是通过迭代器删除
while(it.hasNext()){
it.next();
it.remove();
}*/

//用集合带有的remove方法删除
//会报错误
//因为你用集合的remove方法删除后需要重新获取迭代器
//
/*while(it.hasNext()){
Object o1=it.next();
c.remove(o1);
}*/

System.out.println(c.size());//0
}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值