Microsoft SQL Server 2012 安装体验
2013-03-04 14:24
351 查看
今天在用ArrayList类的caontains方法是遇到了问题,我写了一个存放User类的ArrayList 但在调用list.contains(user)时总是返回false。 去看了下ArrayList的源码,源码如下:
发现在contains方法会调用 o.equals(elementData[i])方法,其中elementData[i]是个object类的实例。也就是说我在调用list.contains(user)时实际上比较的是user.equals(object) 这当然会返回false。
正确的方法,在User类中改写equals方法。 改写的代码如下:
public boolean contains(Object o) { return indexOf(o) >= 0; } public int indexOf(Object o) { if (o == null) { for (int i = 0; i < size; i++) if (elementData[i]==null) return i; } else { for (int i = 0; i < size; i++) if (o.equals(elementData[i])) return i; } return -1; }
发现在contains方法会调用 o.equals(elementData[i])方法,其中elementData[i]是个object类的实例。也就是说我在调用list.contains(user)时实际上比较的是user.equals(object) 这当然会返回false。
正确的方法,在User类中改写equals方法。 改写的代码如下:
public boolean equals(Object obj) { if (obj instanceof User) { User u = (User) obj; return this.username.equals(u.username) && this.password.equals(password); } return super.equals(obj);
相关文章推荐
- VS2012 C++ 无法使用Intellisense,请确保已安装Microsoft SQL Server Compact 4.0
- Microsoft SQL Server 2012 数据库安装图解教程
- Microsoft SQL Server 2012 管理 (1): 安装配置SQL Server 重点
- Microsoft SQL Server 2012 数据库安装图解教程
- Microsoft SQL Server 2012 数据库安装图解教程
- Microsoft SQL Server 2012 数据库安装图解教程
- Microsoft SQL Server 2012 数据库安装图解
- Microsoft SQL Server 2000完全卸载与重新安装
- Microsoft SQL Server 2005 安装程序 错误解决
- win7 64bit不能安装Microsoft SQL Server Management Studio Express 解决
- Microsoft SQL Server 2005 安装程序时 WMI配置错误
- Microsoft SQL Server 2014 登录失败,安装不完整
- Ubuntu下安装FreeTDS访问Sysbase和Microsoft SQL Server 数据库
- Microsoft SQL Server 2012 AlwaysOn 部署(目前使用RC 0 搭建与CTP搭建有些不同) 推荐
- 安装SQL2008的时候, 出现创建 userSettings/Microsoft.SqlServer.
- 跟我一起学Microsoft SQL Server 2012 Internals(3.2)
- 花了几个小时JDBC连接sql server 2012出现的异常com.microsoft.sqlserver.jdbc.SQLServerException: 通过端口 1433 ...解决了!
- Microsoft SQL Server 2000综合应用(1)——SQL 2000的概述以及安装
- 无法找到产品Microsoft SQL Server Native Client的安装程序包
- microsoft sql server 2008在64位win7上安装后服务器名称为空的解决办法 转载