解决方案 »
- 菜鸟求学一个java四则运算 并解决这个程序所在的错误 !
- 十字跟踪鼠标不对点??????
- 如何实现dos中命令行的不让光标移动到提示符的前面的功能(在jtextpane中,急)
- 大虾们好啊,小弟刚入java,有一菜鸟问题,请大家帮忙,谢谢阿!
- 利用jxl解析Excel的时候如何实现Sheet的拷贝?
- 请大家帮忙,我刚学JAVA遇到一个问题?
- 用pdfbox读取pdf文件文本是否可以读出字体信息
- 急!!::子类访问父类成员有哪些方法啊?
- 学习开源项目遇到个小问题 :(
- 如何在一台没有装JDK的Windows下运行java程序?
- android 开发wenservice问题(java.rmi.RemoteException cannot be resolved)
- HashSet HashMap Hashtable
判断set中是否包含某个对象 boolean contains(Object o);返回true,则说明包含这个对象,否则不包含。
2:参考,很详细
http://www.iteye.com/topic/257191
另外感觉不用判断的,如果重复,自动忽略,比list就多了这功能,挺好用的
/*
|--Set:元素是无序(存入和取出的顺序不一定一致),元素不可以重复。
|--HashSet:底层数据结构是哈希表。是线程不安全的。不同步。 HashSet是如何保证元素唯一性的呢? 是通过元素的两个方法,hashCode和equals来完成。
如果元素的HashCode值相同,才会判断equals是否为true。
如果元素的hashcode值不同,不会调用equals。 注意,对于判断元素是否存在,以及删除等操作,依赖的方法是元素的hashcode和equals方法。*/class HashSetTest
{
public static void sop(Object obj)
{
System.out.println(obj);
}
public static void main(String[] args)
{
HashSet<Person> sh = new HashSet<Person>(); sh.add(new Person("张三",24));
sh.add(new Person("李四",23));
sh.add(new Person("王五",24));
sh.add(new Person("张三",60)); Iterator it = sh.iterator(); while(it.hasNext())
{
Person p = (Person)it.next();
sop("姓名:"+p.getName()+":::"+"年龄:"+p.getAge()); }
}
}class Person
{
private String name;
private int age; Person(String name,int age)
{
this.name = name;
this.age = age;
}
public boolean equals(Object obj)
{
if(!(obj instanceof Person))
return false; Person p = (Person)obj; return this.name.equals(p.name) && this.age == p.age;
}
public int hashCode()
{
return name.hashCode()+age*39;
}
public String getName()
{
return name;
}
public int getAge()
{
return age;
}
}