Dotcpp  >  编程教程  >  Java数组  >  Java Set集合

Java Set集合

点击打开在线编译器,边学边练

Set集合是是由一串无序的、不能重复的相同类型元素构成的集合,因为存储数据的时候要先判断其元素的hashCode值,不一样再存储。

1.Set集合特点

1)Set集合是Collection集合的子类。

2)不包含重复的元素的集合。

3)没有带索引的方法,所以不能用普通的for循环遍历。

2.Set常用方法

1)操作元素

add(Object element):在Set集合的尾部添加指定的元素。

remove(Object element):如果Set集合中存在指定元素,则从Set集合中移除该元素。

clear():从Set集合中移除所有元素。

2)判断元素

isEmpty():判断Set集合中是否有元素。没有返回true,有返回false。

contains(Object element):判断Set集合中是否包含指定元素,包含返回true,不包含返回false。

3)其它方法

iterator():返回迭代器(Iterator)对象,迭代器对象用于遍历集合。

size():返回Set集合中的元素数,返回值是int类型。


例如:

import java.util.HashSet;
import java.util.Set;
public class Main {
    public static void main(String[] args) {
        Set set = new HashSet();
        String b = "B";
        //向集合中添加元素
        set.add("A");
        set.add("b");
        set.add("C");
        set.add("b");
        set.add("D");
        set.add("b");
        set.add("E");
        //打印集合元素个数
        System.out.println("集合size = " + set.size());
        //打印集合
        System.out.println(set);
        //移出集合中第一个“B”元素
        set.remove(b);
        //判断集合中是否包含“B”元素
        System.out.println("是否包含\"B\":" + set.contains(b));
        //判断集合是否为空
        System.out.println("set集合是空的:" + set.isEmpty());
        //清空集合
        set.clear();
        System.out.println(set);
    }
}


运行结果如下:

集合size = 5
[A, b, C, D, E]
是否包含"B":false
set集合是空的:false
[]

3.哈希值(hashCode)

哈希值是JDK根据u第项的地址或者数字运算出来的int类的数值,Object类中有一个方式可以获取哈希值,public int hashCode();返回哈希值。


对象哈希值的特点如下:

1)同一个对象多次调用和hashCode()方法返回的哈希值是相同的。

2)默认情况下,不同对象的哈希值是不同的,但可以通过重写hashCode方法使得哈希值相同。


注意:有不一样的字符串的哈希值也有一样,因为String重写了hashCode方法,比如“重地”和“通话”,哈希值都是1179395。



本文固定URL:https://www.dotcpp.com/course/902

上一课:

Java List集合

下一课:

Java Map集合

C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:

一点编程也不会写的:零基础C语言学练课程

解决困扰你多年的C语言疑难杂症特性的C语言进阶课程

从零到写出一个爬虫的Python编程课程

只会语法写不出代码?手把手带你写100个编程真题的编程百练课程

信息学奥赛或C++选手的 必学C++课程

蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程

手把手讲解近五年真题的蓝桥杯辅导课程

Java教程
第一章 Java入门
第二章 Java运算符和表达式
第三章 Java流程控制
第四章 Java类和对象
第五章 Java子类与继承
第六章 Java接口与实现
第七章 Java内部类与异常类
第八章 Java常用实用类
第九章 Java输入输出流
第十章 Java数组
Dotcpp在线编译      (登录可减少运行等待时间)