美文网首页java学习笔记
HashSet集合——java学习之<11>

HashSet集合——java学习之<11>

作者: pm_kai | 来源:发表于2018-02-24 16:47 被阅读0次

1.HashSet特点

  • HashSet线程不安全,存取速度快,保证元素的唯一性是通过覆盖掉Object里面的hashCode()方法和equals()方法实现的。
  • HashSet是基于Hash算法实现的,性能通常优于TreeSet,So通常使用HashSet。

2.关于hashCode()方法和equals()方法

  • 需要先用hashCode()对比,
  • 若不一样,则这两个肯定不等,不必再用equals().
  • 若hashCode()相同,再对比equals(),如果equals()也相同,则两个对象真的相同
package gather;
import java.util.HashSet;
import java.util.Iterator;
public class HashCodeDemo {
    public static void main(String[] args) {
        HashSet<student> h = new HashSet<student>();
        h.add(new student("张三"));
        h.add(new student("张三"));
        h.add(new student("李四"));
        //因为h里面存放的是student这个对象,所以直接打印出来的是地址
        System.out.println(h);
        
        Iterator<student> i = h.iterator();//迭代器
        while (i.hasNext()) {
            student ob = i.next();
            System.out.println(ob.name);
        }
    }
}
class student{
    String name;
    public student(String name){
        this.name=name;
    }
    /*
     * (non-Javadoc)
     * @see java.lang.Object#hashCode()
     * 需要先用hashCode()对比,
     * 若不一样,则这两个肯定不等,不必再用equals().
     * 若hashCode()相同,再对比equals(),如果equals()也相同,则两个对象真的相同
     */
    public int hashCode(){
        int num = name.hashCode();
        System.out.println("---hashCode---");
        return num;
    }
    public boolean equals(Object obj) {
        System.out.println("---equals---");
        return true;
    }
}

相关文章

  • HashSet集合——java学习之<11>

    1.HashSet特点 HashSet线程不安全,存取速度快,保证元素的唯一性是通过覆盖掉Object里面的has...

  • Java集合

    目录: Java集合APICollection 体系Set 集合HashSet 的存储机制:HashSet 还有一...

  • HashSet

    Java集合框架分析-HashSet

  • HashSet的用法

    java集合——HashSet的用法 一、HashSet的构造 二、HashSet添加元素 三、遍历HashSet...

  • java集合之Hashset

    1.HashSet由哈希表(实际上是一个HashMap实例)支持,不保证set的迭代顺序,并允许使用null元素。...

  • Java集合系列-HashSet

    原创文章,转载请标注出处:《Java集合系列-HashSet》 一、概述 HashSet是基于哈希实现的set集合...

  • java基础系列06--集合(2)

    JAVA集合二 Set集合 特点:无索引,不可重复,无序,存取不一致 HashSet类 HashSet原理: 我们...

  • 三句话都能解释清楚的java集合类HashSet,你清楚吗?

    题目:三句话都能明白的java集合类HashSet,你都知道吗? HashSet作为一种最简单的java集合类,真...

  • JAVA 笔记[集合 之 HashSet ]

    HashSet HashSet 特点 无序 可多条线程同时访问, 必须用代码来保证同步。 集合中元素的值 可以为 ...

  • Java集合之TreeSet、HashSet

    在总集篇中我大概梳理了一下整个集合类的关系,这篇文章是对总集篇的扩展,本文将详细讨论Set分支实现类。所有涉及到的...

网友评论

    本文标题:HashSet集合——java学习之<11>

    本文链接:https://www.haomeiwen.com/subject/vbxcxftx.html