前往小程序,Get更优阅读体验!
立即前往
发布

HashSet

作者头像
GeekLiHua
发布2025-01-21 12:22:18
发布2025-01-21 12:22:18
7300
代码可运行
举报
文章被收录于专栏:Java
运行总次数:0
代码可运行

集合(Set)

HashSet

简介:本文旨在用最简洁的篇幅,快速熟悉使用HashMap。

声明方式
代码语言:javascript
代码运行次数:0
复制
public static void main(String[] args) {
		// 方式一 子类实现方式创建
		Set<Integer> set = new HashSet<Integer>();
		set.add(1);
		set.add(3);
		set.add(1);
		set.add(2);
		set.add(4);
		set.add(100);
		set.add(-100);
		set.add(2);
		System.out.println(set);
		// 这个结果无序 且去重
		/*[1, 2, 3, -100, 4, 100]*/
		
		// 方式二 同一等级类的方式创建
		HashSet<Integer> set = new HashSet<Integer>();
		set.add(1);
		set.add(3);
		set.add(1);
		set.add(2);
		set.add(4);
		set.add(100);
		set.add(-100);
		set.add(2);
		System.out.println(set);
		// 这个结果无序 且去重
		/*[1, 2, 3, -100, 4, 100]*/
	}
常用方法

boolean add()添加字符 可以通过这个方法来判断一个字符是否在哈希表中存在

代码语言:javascript
代码运行次数:0
复制
public static void main(String[] args) {
		HashSet<Integer> set = new HashSet<Integer>();
		// 第一次添加成功 第二次添加失败
		System.out.println(set.add(1));
		/*true*/
		System.out.println(set.add(1));
		/*false*/
	}

void clear() 清空集合

代码语言:javascript
代码运行次数:0
复制
public static void main(String[] args) {
		HashSet<Integer> set = new HashSet<Integer>();
		set.add(1);
		set.add(2);
		set.add(3);
		set.add(4);
		System.out.println(set);
		/*[1, 2, 3, 4]*/
		set.clear();
		System.out.println(set);
		/*[]*/
	}

Object clone 克隆函数 浅拷贝

代码语言:javascript
代码运行次数:0
复制
public static void main(String[] args) {
		HashSet<Integer> set = new HashSet<Integer>();
		set.add(1);
		set.add(2);
		set.add(3);
		set.add(4);
		System.out.println(set);
		/*[1, 2, 3, 4]*/
		
		// 克隆的时候要注意 就是需要 加上对应的强制转换
		HashSet<Integer> set2 = (HashSet<Integer>)set.clone();
		System.out.println(set2);
		/*[1, 2, 3, 4]*/
	}

boolean isEmpty() add(),isEmpty(),size,(),iterator(),clear(),clone() 这几个函数基本是所有容器都有的而且作用还是一样的

后面就不会一直写了

boolean contains(Object o) 判断是否包含这个元素

代码语言:javascript
代码运行次数:0
复制
public static void main(String[] args) {
		HashSet<Integer> set = new HashSet<Integer>();
		set.add(1);
		set.add(2);
		set.add(3);
		set.add(4);
		System.out.println(set.contains(1));
		/*true*/
	}

boolean remove(Object o) 删除指定元素 返回是否删除成功 也可以用来判断元素是否在集合里面

代码语言:javascript
代码运行次数:0
复制
public static void main(String[] args) {
		HashSet<Integer> set = new HashSet<Integer>();
		set.add(1);
		set.add(2);
		set.add(3);
		set.add(4);
		System.out.println(set.remove(1));		
		/*true*/
		System.out.println(set);
		/*[2, 3, 4]*/
	}
遍历方式
代码语言:javascript
代码运行次数:0
复制
public static void main(String[] args) {
		HashSet<Integer> set = new HashSet<Integer>();
		set.add(1);
		set.add(2);
		set.add(3);
		set.add(4);

		// 方法一		
		for(Integer it : set)
		{
			System.out.print(it + " ");
		}
		/*1 2 3 4 */
		System.out.println();
		
		// 方法二
		Iterator<Integer> it = set.iterator();
		while(it.hasNext())
		{
			System.out.print(it.next() + " ");
		}
		/*1 2 3 4 */
	}
排序

HashSet不能直接进行排序 需要借助其他容易来实现 这里引出JavaSTL 中的一个很厉害的特性 容器之间的相互转换

代码语言:javascript
代码运行次数:0
复制
public static void main(String[] args) {
		HashSet<Integer> set = new HashSet<>();
		set.add(-1);
		set.add(56464);
		set.add(3);
		set.add(2);
		set.add(4);
		set.add(0);
		System.out.println(set);
		/*[-1, 56464, 0, 2, 3, 4]*/
		System.out.println();

		// 转换成List类型之后排序
		List<Integer> list = new ArrayList<Integer>(set);
		Collections.sort(list);
		System.out.println(list);
		/*[-1, 0, 2, 3, 4, 56464]*/
	}
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022-10-15,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 集合(Set)
    • HashSet
      • 声明方式
      • 常用方法
      • 遍历方式
      • 排序
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档