百木园-与人分享,
就是让自己快乐。

Java集合框架(三)-HashSet

1、HashSet特点

存放的元素是无序的(不保证添加元素的顺序)
元素唯一(不可以重复)
可以存null,但是只能存放1个
虽然set集合不保证添加元素的顺序,但是集合中存放的元素顺序其实是固定的,根据元素的hash值确定的顺序

2、HashSet原理分析

HashSet底层,是借助HashMap实现的;

3、HashSet初始化

Set<String> strSet = new HashSet<>();

4、HashSet常用方法

方法 说明
size() 结合元素个数
contains(Object o) 集合是否包含某个元素

4.1 size()

// 获取set集合元素个数方法:size()

4.2 contains(Object o)

// 判断set集合中是否包含某个元素方法:contains(元素)

4.3 list的其它常用方法,set中也有,不再介绍

5、HashSet遍历

5.1 迭代器遍历

Set<String> carSet = new HashSet<>();
carSet.add(\"Bmw325\");
carSet.add(\"BenzC200\");
carSet.add(\"AudiA4\");

// 方式一:迭代器遍历
Iterator<String> iterator = carSet.iterator();
while(iterator.hasNext()){
    System.out.println(iterator.next());
}

5.2 增强for循环

// 方式二:增强for循环
for (String car : carSet) {
   System.out.println(car);
}

运行结果:

BenzC200
AudiA4
Bmw325

6、HashSet集合是如何确定元素唯一的

6.1 HashSet添加一个元素的过程

此处原文链接

  1. 调用对象的hashCode()方法获取对象的哈希值;

  2. 根据对象的哈希值计算对象的存储位置;

  3. 判断该位置是否有元素,如果没有元素则将元素存储到该位置;如果有元素则遍历该位置的所有元素,和新存入的元素比较哈希值是否相同,如果都不相同则将元素存储到该位置;如果有相同的,则调用equals()方法比较对象内容是否相等;

  4. 如果返回false则将元素存储到该位置,如果返回true则说明元素重复,不存储;

6.2 流程图

img

HashSet集合存储元素:要保证元素唯一性,需要重写hashCode()和equals()方法。


来源:https://www.cnblogs.com/xiaoqigui/p/16394357.html
本站部分图文来源于网络,如有侵权请联系删除。

未经允许不得转载:百木园 » Java集合框架(三)-HashSet

相关推荐

  • 暂无文章