容器方法举例
来源:互联网 发布:蒋介石为何不抵抗知乎 编辑:程序博客网 时间:2024/05/18 02:20
容器类对象在调用remove contains等方法需要比较对象是否相等,这会涉及到equals和hashCode方法;
对于自定义的类需要重写equals和hashCode方法以实现自定义类的对象的相等;
相等的对象应该具有hashcodes;
hashCode方法一般在对象最为map的键的时候使用;
import java.util.ArrayList;
import java.util.Collection;
public class Name {
private String firstName,lastName;
public Name(String firstName, String lastName) {
super();
this.firstName = firstName;
this.lastName = lastName;
}
public String getFirstName() {
return firstName;
}
public void setFirstName(String firstName) {
this.firstName = firstName;
}
public String getLastName() {
return lastName;
}
public void setLastName(String lastName) {
this.lastName = lastName;
}
@Override
public int hashCode() {
final int prime = 31;
int result = 1;
result = prime * result
+ ((firstName == null) ? 0 : firstName.hashCode());
result = prime * result
+ ((lastName == null) ? 0 : lastName.hashCode());
return result;
}
@Override
public boolean equals(Object obj) {
if (this == obj)
return true;
if (obj == null)
return false;
if (getClass() != obj.getClass())
return false;
Name other = (Name) obj;
if (firstName == null) {
if (other.firstName != null)
return false;
} else if (!firstName.equals(other.firstName)){
return false;
}
if (lastName == null) {
if (other.lastName != null)
return false;
} else if (!lastName.equals(other.lastName)){
return false;
}
return true;
}
public static void main(String[] args) {
Collection c=new ArrayList();
c.add(new Name("wang","delei"));
c.add(123);
c.remove(new Name("wang","delei"));
c.remove(123);
System.out.println(c);
}
}
运行结果:
[]
- 容器方法举例
- 关联容器使用举例
- Set方法举例
- 扩展方法简单举例
- ArrayList方法使用举例
- jquery each方法举例
- Java 字符串方法举例
- clone方法使用举例
- Request()方法举例
- 构造方法举例
- Sting中方法举例
- 回调方法举例
- 常用STL容器及算法举例
- 常用STL容器及算法举例 .
- C++容器类的使用及举例
- 标准容器的共性及举例
- 常用STL容器及算法举例
- java 数组容器List用法举例
- 精明的程序员——小程大爱
- Ubuntu 10.04更新源大全
- android WIFI 架构和控制流程
- windows系统操作快捷键
- ArcEngine中getLayer方法的UID参数的详解
- 容器方法举例
- 数据库主要功能 和 特点
- WinMain中的lpCmdLine参数
- 不同技术团队的配合问题及DevOps
- [python]抓取啄木鸟社区《活学活用wxPython》内容与图片
- Ubuntu 11.04 更新源地址列表及下载
- 精明的程序员——表象之后
- 开始 汽车 智能 虚拟 仪表 2
- 陀螺仪内部,你所不知道的美