checkBox多选时,重写hasCode()方法和equal()方法对实体类的增加和移除
来源:互联网 发布:linux file 文件编码 编辑:程序博客网 时间:2024/06/01 09:10
以前我们的需求是:当我们对实体类选中checkBox时,加入list里执行add()方法,取消时,则在list移除,执行remove()方法,它们操作的是同一个实体对象。
现在我们的需求是:我们选中checkBox时,取它的部分属性加入另外的实体对象,没选中则移除。
一、在adapter里定义接口,在activity里实现接口setItemSelect();
private Set<OrderDestBean> selectList=new HashSet();@Override public void setItemSelect(ShopcarBean shopCar) { OrderDestBean bean = new OrderDestBean(); bean.setAmount(shopCar.getCash()); bean.setNum(shopCar.getNum()); if (shopCar.isSelect()) { selectList.add(bean); cashId.add(shopCar.getId()); accountAll += Integer.parseInt(bean.getAmount()); } else { accountAll -= Integer.parseInt(bean.getAmount()); selectList.remove(bean); cashId.remove(shopCar.getId()); } }
这样,我们移除OrderDestBean时,会移除不掉,而且会增加相同的元素,因为我们每次都重新new了一个OrderDestBean对象,他们操作的不是同一个对象,按照之前的想法,我会想到遍历list了,现在有了一种新的思路,新的方法可以实现,那就是重写OrderDestBean 的equal()、hasCode()方法。
@Override public int hashCode() { // return 12345; final int prime = 31; int result = 1; result = prime * result + ((this.num == null) ? 0 : this.num.hashCode()); return result; } @Override public boolean equals(Object o) { if(o.getClass()!=OrderDestBean.class){ return false; } OrderDestBean obj=(OrderDestBean)o; if(this.num.equal(obj.getNum())){ return true; } retrurn false; }
这样就完美的解决了上面所说的问题。
0 0
- checkBox多选时,重写hasCode()方法和equal()方法对实体类的增加和移除
- 深入理解equal方法和hascode方法
- 重写对象的equals方法和hascode方法
- 重写equals和hasCode 方法 JDK1.7
- 重写toString和equal方法
- HIBERNA里要重写HASCODE 和EQUALS这两个方法
- 联合主键实现Serializable接口,重写equals和hasCode方法
- equals()方法和hascode()方法
- 联合主键实现Serializable接口,同时重写equals和hasCode方法 的原因和步骤
- JAVA 之equal和hascode
- JAVA 之equal和hascode
- 细说equals()方法和hascode()方法
- 关于String的equal的方法对Object的重写
- java中equals() 和 hasCode()方法比较
- 实体类自动重写toString(),equals()和hashCode()方法
- 重写equal和hashCode方法,用集合去重对象
- HashCode和equal方法
- HashCode和equal方法
- Java中多继承下的super()用法
- 软工考试--第一章计算机系统
- 第39条 : 必要时进行保护性拷贝
- dev/input/event3 (USB鼠标驱动
- spring 拦截器
- checkBox多选时,重写hasCode()方法和equal()方法对实体类的增加和移除
- VC的「附加依赖项」、「库目录」和「包含目录」分别有什么用?
- 如何使用VS即visual studio建立C++项目或则C源代码
- Maven的仓库管理
- 拖拽及相关BUG的修复
- vs2010 创建 ActiveX 控件
- 随笔
- 机器视觉开源代码集合
- jxl导出excel(通讯录)