Java语言:Java集合之Set集合(主要讲HashSet)

目录

Set概述

HashSet实现类

HashSet简单的操作(通过例题体会)


Set概述

Set是元素无序且数据不可以重复的集合,也称为集

 

HashSet实现类

HashSet是Set一个重要的实现类,称为哈希集

HashSet中的元素也是无序且不重复的

HashSet中只允许存在一个null元素

具有良好的存取和查找性能

这里说具有良好的存取和查找性能的原因:

HashSet其实是靠哈希表实现的,所以效率特别高(后面会具体介绍)

HashSet的构造方法,API描述如下

 

HashSet简单的操作(通过例题体会)

题目:使用HashSet存储表示颜色的英文单词,并进行输出

“blue”、“red”、“black”、“yellow”、“white”

既然要讲到HashSet元素的输出

因为在HashSet中并没有和ArrayList中一样的get方法,所以这里要引入一个概念,叫做迭代器

何为迭代?迭代就是循环遍历的意思,我也不知道还有没有其他的意思,这也是我第一次知道迭代

那么就要使用迭代器对HashSet中的的元素进行输出

上API描述文档

从文档描述可以看出,它也是一个接口

这里还要介绍Iterator接口中的两个方法

分别是hasNext和next

 

hasNext方法是判断迭代器中是否还有下一个元素,上API文档

从文档的解释来看,如果存在下一个元素,则返回true

 

next方法是获取迭代器中的下一个元素,上API文档

从文档描述可以看出它的返回值是一个元素

 

这里还有一点要讲的就是迭代器如何对HashSet的元素进行输出的过程:

首先,使用hasNext方法判断是否存在下一个元素

如果返回true,则使用next进行获取,并输出(如果你想要进行输出的话)

接着又是重复前面的操作,使用hasNext方法进行判断

知道返回false,迭代结束

 

基础知识介绍完了,接下来上代码


import java.util.HashSet;
import java.util.Iterator;

/*
 * 题目:使用HashSet存储表示颜色的英文单词,并进行输出
 * “blue”、“red”、“black”、“yellow”、“white”
 */
public class Color {

	public static void main(String[] args) {
		// 这里加上String可以减少错误,当添加到hc中的对象不是String类型的时候,就会报错
		HashSet<String> hc = new HashSet<String>();
		hc.add("blue");
		hc.add("white");
		hc.add("red");
		hc.add("yellow");
		hc.add("green");
		
		//输出HashSet中的元素
		Iterator<String> it = hc.iterator();
		while (it.hasNext()) {
			System.out.println(it.next());
		}
		
		System.out.println("*********************************************");
		//添加一个新的元素
		hc.add("black");
		//这里要重新创建一个迭代器,因为上一个迭代器已经迭代完了,继续使用hasNxet进行判断,会返回false
		it = hc.iterator();
		while (it.hasNext()) {
			System.out.println(it.next());
		}
		
		System.out.println("*********************************************");
		System.out.println("添加重复元素后");
		//添加重复的元素
		hc.add("blue");
		it=hc.iterator();
		while(it.hasNext()) {
			System.out.println(it.next());
		}
	}

}

从添加重复元素之后的情况来看,系统会忽视掉重复添加的元素

所以也可以证明HashSet和Set只能存储不重复的数据

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值