java的HashSet

java的HashSet

HashSet 基于 HashMap 来实现的,是一个不允许有重复元素的集合。如果想了解HashMap可以去看我的这篇博客

HashSet 允许有 null 值,且是无序的。
HashSet 不是线程安全的, 如果多个线程同时修改 HashSet,那么最终的结果是不确定的。 您必须在多线程访问时显式同步对 HashSet 的并发访问。

HashSet 中的元素实际上是对象,一些常见的基本类型可以使用它的包装类,而自己定义的类和String则可以直接作为他的元素使用

基本类型和他的包装类的对应情况如下所示:

基本类型引用类型
booleanBoolean
byteByte
shortShort
intInteger
longLong
floatFloat
doubleDouble
charCharacter

引用:

import java.util.HashSet; // 引入 HashSet 类

初始化:

HashSet<String> sites = new HashSet<String>();
//如果是int类型,那么就是
HashSet<Integer> nums = new HashSet<Integer>();
//如果是自己定义的比如Animal类,那么就是
HashSet<Animal> animals = new HashSet<Animal>();

HashSet的增删查

增(add)

// 引入 HashSet 类      
import java.util.HashSet;

public class HashSetDemo {
    public static void main(String[] args) {
    HashSet<String> sites = new HashSet<String>();
        sites.add("www.baidu.com");
        sites.add("www.hstc.edu.cn");
        sites.add("wx.qq.com");
        sites.add("mail.qq.com");
        sites.add("www.baidu.com");  // 重复的元素不会被添加
        System.out.println(sites);
    }
}

显示如下:
在这里插入图片描述
可见,只剩下一个www.baidu.com了,因为他是不可重复的,而且顺序也跟我们添加的不太一样,究其原因,则是因为他是无序的。

删(remove)

方法:remove,删除成功返回true,失败返回false。

import java.util.HashSet;

public class HashSetDemo {
    public static void main(String[] args) {
    HashSet<String> sites = new HashSet<String>();
        sites.add("www.baidu.com");
        sites.add("www.hstc.edu.cn");
        sites.add("wx.qq.com");
        sites.add("mail.qq.com");
        sites.add("www.baidu.com");  // 重复的元素不会被添加
        System.out.println(sites);	
        //删除
        sites.remove("www.hstc.edu.cn");
        System.out.print("删除www.hstc.edu.cn后:");
        System.out.println(sites);   
    }
}

显示:
在这里插入图片描述

查(contains)

方法:contains,存在返回true,不存在返回false

import java.util.HashSet;

public class HashSetDemo {
    public static void main(String[] args) {
    HashSet<String> sites = new HashSet<String>();
        sites.add("www.baidu.com");
        sites.add("www.hstc.edu.cn");
        sites.add("wx.qq.com");
        sites.add("mail.qq.com");
        sites.add("www.baidu.com");  // 重复的元素不会被添加
        System.out.println(sites);	
        //查,判断某元素是否在其中
        System.out.print("判断某元素是否存在:");
        System.out.println(sites.contains("wx.qq.com"));
    }
}

显示:
在这里插入图片描述

HashSet的迭代

import java.util.HashSet;

public class HashSetDemo {
    public static void main(String[] args) {
    HashSet<String> sites = new HashSet<String>();
        sites.add("www.baidu.com");
        sites.add("www.hstc.edu.cn");
        sites.add("wx.qq.com");
        sites.add("mail.qq.com");
        sites.add("www.baidu.com");  // 重复的元素不会被添加
        System.out.println(sites);	
        for(String site : sites){
        	System.out.println(site);
        }
    }
}

显示:
在这里插入图片描述

HashSet的长度(size())

想知道HashSet的长度,只需要调用其方法size()即可。

  • 1
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值