1、Set
- 在Java中,
Set
是一种集合接口(Interface),它继承自Collection
接口,并且是一个无序、不重复的集合。 - 不重复性:
Set
中的元素是唯一的,不允许重复元素。 - Java中常用的
Set
实现类有以下几种:HashSet
:基于哈希表实现,具有较快的插入、删除和查找操作。不保证元素的顺序。TreeSet
:基于红黑树(自平衡二叉搜索树)实现,能够对元素进行排序。元素按照自然顺序或者通过比较器进行排序。LinkedHashSet
:基于哈希表和链表实现,具有插入顺序的特性,同时也是一个哈希集合
下面是一个使用 HashSet
的简单示例(Set接口的一些常见操作):(和list中的方法差不多)
import java.util.HashSet; import java.util.Set; public class SetExample { public static void main(String[] args) { Set<String> set = new HashSet<>(); // 添加元素 set.add("apple"); set.add("banana"); set.add("orange"); // 遍历元素 for (String element : set) { System.out.println(element); } // 判断元素是否存在 System.out.println(set.contains("apple")); // true System.out.println(set.contains("grape")); // false // 删除元素 set.remove("banana"); // 获取元素数量 System.out.println(set.size()); // 2 } }
3、HashMap
- HashMap 是一个散列表,它存储的内容是键值对(key-value)映射。
-
HashMap 实现了 Map 接口,根据键的 HashCode 值存储数据,具有很快的访问速度,最多允许一条记录的键为 null,不支持线程同步。
-
HashMap 是无序的,即不会记录插入的顺序。
- HashMap 继承于AbstractMap,实现了 Map、Cloneable、java.io.Serializable 接口。
(1)创建一个 HashMap 对象 Sites, 整型(Integer)的 key 和字符串(String)类型的 value:
HashMap<Integer, String> Sites = new HashMap<Integer, String>();
(2)HashMap的常用方法
Java HashMap | 菜鸟教程 (runoob.com) (最下面)
2、HashSet
- HashSet 基于 HashMap 来实现的,是一个不允许有重复元素的集合。
- HashSet 允许有 null 值。
- HashSet 是无序的,即不会记录插入的顺序。
- HashSet 不是线程安全的, 如果多个线程尝试同时修改 HashSet,则最终结果是不确定的。 您必须在多线程访问时显式同步对 HashSet 的并发访问。
- HashSet 实现了 Set 接口。
(1)创建一个 HashSet 对象 sites,用于保存字符串元素:
import java.util.HashMap; // 引入 HashMap 类
(2)添加元素可以使用 add() 方法:
// 引入 HashSet 类 import java.util.HashSet; public class RunoobTest { public static void main(String[] args) { HashSet<String> sites = new HashSet<String>(); sites.add("Google"); sites.add("Runoob"); sites.add("Taobao"); sites.add("Zhihu"); sites.add("Runoob"); // 重复的元素不会被添加 System.out.println(sites); } } //输出结果 //[Google, Runoob, Zhihu, Taobao]
(3)使用 contains() 方法来判断元素是否存在于集合当中:
// 引入 HashSet 类 import java.util.HashSet; public class RunoobTest { public static void main(String[] args) { HashSet<String> sites = new HashSet<String>(); sites.add("Google"); sites.add("Runoob"); sites.add("Taobao"); sites.add("Zhihu"); sites.add("Runoob"); // 重复的元素不会被添加 System.out.println(sites.contains("Taobao")); } } //输出结果 //true
(4)使用 remove() 方法来删除集合中的元素:
// 引入 HashSet 类 import java.util.HashSet; public class RunoobTest { public static void main(String[] args) { HashSet<String> sites = new HashSet<String>(); sites.add("Google"); sites.add("Runoob"); sites.add("Taobao"); sites.add("Zhihu"); sites.add("Runoob"); // 重复的元素不会被添加 sites.remove("Taobao"); // 删除元素,删除成功返回 true,否则为 false System.out.println(sites); } } //输出结果 //[Google, Runoob, Zhihu]
(5)删除集合中所有元素可以使用 clear 方法:
// 引入 HashSet 类 import java.util.HashSet; public class RunoobTest { public static void main(String[] args) { HashSet<String> sites = new HashSet<String>(); sites.add("Google"); sites.add("Runoob"); sites.add("Taobao"); sites.add("Zhihu"); sites.add("Runoob"); // 重复的元素不会被添加 sites.clear(); System.out.println(sites); } } //输出结果 //[]
引用于菜鸟教程
标签:元素,JAVA,HashMap,HashSet,知识,sites,add,public From: https://www.cnblogs.com/18191xq/p/17973461