HashSet
2015-01-11 11:53
99 查看
/* Set:元素是无序的(存入和取出顺序不一定一直。),元素不可以重复 Set集合功能和Collection是一致的。哈希表按照哈希值存储。 如果两个哈希值相同,但是不是同一个对象,则依次在第一个内存下顺延。 子类: ---HashSet:底层数据结构式哈希表。数据先调用自己的hashCode方法,然后判断equals
注意ArrayList判断元素是否存在和删除相同,依赖equals方法
HashSet先依赖hashCode,后依赖equals*/import java.util.*;class Person{String name;int age;Person(String name,int age){this.name = name;this.age = age;}public String getName(){return this.name;}public int getAge(){return this.age;}public boolean equals(Object obj){if(!(obj instanceof Person)){return false;}Person p = (Person)obj;System.out.println(this.name + "...equals...." + p.name);return this.name.equals(p.name) && this.age==p.age;}public int hashCode(){System.out.println(this.name + ".....hashCode()");return this.name.hashCode()+age;}}class TestDemo{public static void main(String[] args){HashSet hs = new HashSet();hs.add("java1");hs.add("java1");hs.add("java2");hs.add("java3");System.out.println(hs);/*结果【java1,java2,java3】,原因:由于不能有重复,所以添加第二个java1的时候返回false,没成功*/System.out.println(hs.size());//retainAll(Collection al),保留与al中相同的元素。//添加自定义对象HashSet hsPerson = new HashSet();hsPerson.add(new Person("al1",11));hsPerson.add(new Person("al2",12));hsPerson.add(new Person("al3",13));hsPerson.add(new Person("al4",14));hsPerson.add(new Person("al4",14));Iterator it =hsPerson.iterator();while(it.hasNext()){Person p = (Person)it.next();System.out.println(p.getName() + "..." + p.getAge());}}}
相关文章推荐
- STL系列之九 探索hash_set
- HashSet HashTable HashMap的区别
- hash_set和hash_map
- set与hash_set
- java容器源码分析(八)——LinkedHashSet
- Session监听统计网站的在线人数HashSet
- C++中map、hash_map、unordered_map、unordered_set通俗辨析
- scala.collection.immutable.HashSet$.empty()Lscala/collection/immutable/HashSet
- HashSet vs. TreeSet vs. LinkedHashSet
- map、set、multimap、multiset、hash_map、hah_set、hash_multimap、hash_multiset
- Java Collections Framework学习笔记之HashSet
- Set最常见子类HashSet
- question_009-JAVA之Set之HashSet???
- .net集合类的研究--哈希表(二)--HashSet<T>
- Set HashSet TreeSet
- 关于HashSet Container
- Set\HashSet集合为什么能去重
- Java笔记之HashSet与TreeSet集合的运用
- 【STL】关联容器 — hash_set
- Hash Map / Hash Set