HashSet
2019-07-29 18:08
375 查看
原文链接:https://www.geek-share.com/detail/2631948380.html
/*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());}}}
转载于:https://www.cnblogs.com/dengshiwei/p/4258501.html
相关文章推荐
- Java基础--集合框架(HashSet、TreeSet、泛型)
- 从头认识java-15.5 使用LinkedHashSet需要注意的地方
- HashSet 与 ArrayList
- 深入Java集合学习系列:HashSet的实现原理
- 在64位ubuntu上编译kitkat4.4时遇到HashSet_jni.h错误导致编译中止的问题
- android开发 集合类之set和hashSet
- Java-HashSet源码解读
- HashMap、ConcurrentHashMap、HashTable、HashSet
- HashSet 集合 去重
- HashSet详解
- Java 中 List 与 HashSet 的对比
- Java HashSet和LinkedHashSet的用法
- HashSet及LinkedHashSet之源码分析
- HashSet集合用法
- Java HashMap(LinkedHashMap)与Hashset(LinkedHashSet)的排序
- zabbix hashset
- Java中的HashCode(2)之Hashset造成的内存泄露
- Java 集合 HashMap & HashSet 拾遗
- 关于 Arraylist和HashSet中元素比较的问题所引发的思考
- C# HashTable、HashSet和Dictionary的区别