Hash表的存储结构

HashSet集合的自身特点:
 *      1、底层数据结构:哈希表
 *      2、存储,拿取都比较快
 *     3、 线程不安全,运行速度快

代码实现如下:

package itcast.demo1;

import java.util.HashSet;

/*
 *  HashSet集合的自身特点:
 *  	底层数据结构:哈希表
 *  	存储,拿取都比较快
 *  	线程不安全,运行速度快
 */
public class HashSetDemo1 {
	public static void main(String[] args) {
		HashSet set = new HashSet();
		set.add(new String("abc"));
		set.add(new String("abc"));
		set.add(new String("bbc"));
		set.add(new String("bbc"));
		System.out.println(set);
	}
}

其运行结果为:[bbc, abc]

下面用一张图来详细解释一下Hash表的存储结构,如下所示:

 

Hash表的存储结构_第1张图片

面试题:

 两个对象 Person p1 p2
 *     问题:如果两个对象的哈希值相同,p1.hashCode()==p2.hashCode()
 *         两个对象的equals一定返回true吗?p1.equals(p2)一定是true吗?
 *         正确答案:不一定
 *     
 *         如果两个对象的equals方法返回true,p1.equals(p2)==true
 *         两个对象的哈希值一定相同吗?
 *         正确答案:一定的

你可能感兴趣的:(JAVA)