Set集合(接口)的实现类(子类)——HashSet 类

HashSet是Set接口的一个实现,以其高效的存取和查找性能著称。它不保证元素顺序,且不允许重复元素。元素的唯一性通过hashCode()和equals()方法来保证。若存储自定义对象,需重写这两个方法以正确判断对象是否相等。
摘要由CSDN通过智能技术生成

摘要:

前面己经介绍过Set 集合,它类似于一个罐子, 程序可以依次把多个对象"丢进" Set 集合,而Set集合通常不能记住元素的添加顺序。Set 集合与Collection 基本相同,没有提供任何额外的方法。实际上Set 就是Collection ,只是行为略有不同( Set 不允许包含重复元素) 。Set 集合不允许包含相同的元素,如果试图把两个相同的元素加入同一个Set 集合中, 则添加操作失败, addO方法返回fal se ,且新元素不会被加入。
上面介绍的是Set 集合的通用知识,因此完全适合后面介绍的HashSet、TreeSet 和EnumSet 三个实现类,只是三个实现类还各有特色。

Java Set集合的概述及特点:https://blog.csdn.net/hewenqing1/article/details/104166374

 

HashSet 类

一、概述:

HashSet 是Set 接口的典型实现,大多数时候使用Set 集合时就是使用这个实现类。HashSet 按Hash算法来存储集合中的元素,因此具有很好的存取和查找性能。

二、特点:

1、不能保证元素的排列顺序,顺序可能与添加顺序不同,顺序也有可能发生变化。

代码实现:存储字符串并遍历

package cn.wen_01;

import java.util.HashSet;

/*
 * HashSet:存储字符串并遍历
 */
public class HashSetDemo {
	public static void main(String[] args) {
		// 创建集合对象
		HashSet<String> hs = new HashSet<String>();

		// 创建并添加元素
		hs.add("hello");
		hs.add("world");
		hs.add("java");
		hs.add("world");

		// 遍历集合
		for (String s : hs) {
			System.out.println(s);
		}
	}
}

2、HashSet如何保证元素唯一性? 为什么存储字符串的时候,字符串内容相同的只存储了一个呢?

1)查看源码:选中类名(F3或者Ctrl+鼠标点击)    例如图下的add()方法的查询,其他类似。

 这里不是完整的代码,截取代码片段按顺序组成如下:(按方法的顺序查找其中的源码)

interface Collection {
	...
}

interface Set extends Collection {
	...
}

class HashSet implements Set {
	private s
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值