上篇文章中我们讲到, 哈希表常使用的数据结构有数组、set集合,map映射,并学习了数组作为哈希表,本篇文章我们学习set集合。
set的概念个特点:
在 Java 中,set是一种集合接口,和数学中的集合类似,它用于存储一组不重复的元素,并且不保证元素的顺序。set接口的常见实现类包括Hashset、TreeSet和LinkedHashSet,通常选择HashSet作为实现。
set的基本操作:
创建、插入、删除、查找是set的基本操作,查找通常是Set最重要的操作,它最常见的用法是判断某个对象是否在Set中和去除集合中的重复元素。
HashSet的常用方法:
add(element):向集合中添加元素,如果元素已存在,则不会重复添加。remove(element):从集合中移除指定元素。contains(element):检查集合中是否包含指定元素。isEmpty():判断集合是否为空。size():返回集合中的元素数量。clear():清空集合中的所有元素
set集合的遍历:
可以使用增强 for 循环(for-each 循环)来遍历一个Set集合。
// 遍历集合中的元素 for (String name : set) { System.out.println(name); }也可以使用迭代器来遍历,要使用迭代器,需要先获得集合的迭代器对象,使用集合的iterator()方法来获取这个迭代器对象,然后可以使用hasNext()方法检查是否还有元素,并使用next()方法获取下一个元素。
public static void main(String[] args) { Set<String> stringSet = new HashSet<>(); stringSet.add("zs"); stringSet.add("ls"); stringSet.add("Mike"); Iterator<String> iterator = stringSet.iterator(); // 获取集合的迭代器 while (iterator.hasNext()) { // 检查是否还有元素可迭代 String element = iterator.next(); // 获取下一个元素 System.out.println(element); } }例题:判断集合成员
题目描述:
请你编写一个程序,判断给定的整数 n 是否存在于给定的集合中。
输入描述:
有多组测试数据,第一行有一个整数 k,代表有 k 组测试数据。
每组数据第一行首先是一个正整数 m,表示集合中元素的数量(1 <= m <= 1000)。
接下来一行包含 m 个整数,表示集合中的元素。
最后一行包含一个整数 n,表示需要进行判断的目标整数。
输出描述:
包含多组输出,每组输出占一行。
如果集合中存在 n,输出“YES”,否则输出“NO”。
输入示例:
2 5 1 2 3 4 5 3 6 1 2 3 4 5 6 7输出示例:
YES NO以下是完整Java代码:
import java.util.HashSet; import java.util.Scanner; import java.util.Set; public class Main { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); int k = scanner.nextInt(); for (int i = 0; i < k; i++) { int m = scanner.nextInt(); Set<Integer> set = new HashSet<>(); // 创建集合 for (int j = 0; j< m; j++) { set.add(scanner.nextInt()); // 集合的插入操作 } int n = scanner.nextInt(); if (set.contains(n)) { // 检查集合中是否包含特定元素 System.out.println("YES"); } else { System.out.println("NO"); } } scanner.close(); } }附:以上内容均来自卡码网Java基础课,若有侵权,将在第一时间删除。