JAVA集合框架之Set接口实现类
来源:互联网 发布:程序员死得早 编辑:程序博客网 时间:2024/05/20 02:29
在上一篇《JAVA集合框架》中为大家介绍了JAVA集合框架的基本组成,这一片开始将为大家介绍集合框架中常用的实现类的用法。
java.util.HashSet< E >
此类实现 Set 接口,由哈希表(实际上是一个 HashMap 实例)支持。它不保证 set 的迭代顺序;特别是它不保证该顺序恒久不变。此类允许使用 null 元素。这是我们最常用的Set接口的实现类。
构造方法
方法摘要
使用示例
import java.util.HashSet;import java.util.Iterator;public class HashSetDemo{ public static void main(String[] args) { // 创建一个HashSet对象,<String>为泛型,表明HashSet中的元素必须是String类型 HashSet<String> set = new HashSet<String>(); // 添加元素 set.add("jiang"); set.add("gu"); set.add("jin"); System.out.println("集合中的元素个数为:" + set.size()); // 判断集合中是否包含指定元素 System.out.println(set.contains("jiang")); // 遍历集合中的元素 System.out.println("集合中的元素为(迭代器Iterator):"); Iterator<String> iterator = set.iterator(); while (iterator.hasNext()) { System.out.println(iterator.next()); } System.out.println("集合中的元素为(foreach):"); for (String item : set) { System.out.println(item); } }}
运行结果:
集合中的元素个数为:3
true
集合中的元素为(迭代器Iterator):
jin
jiang
gu
集合中的元素为(foreach):
jin
jiang
gu
需要注意的是,遍历元素时,打印输出的顺序可能与上述结果不同,因为HashSet它不保证迭代顺序,特别是它不保证该顺序恒久不变。如果我们想要元素迭代顺序与添加顺序相同,那么我们可以使用HashSet的子类java.util.LinkedHashSet<E>
,该类用法与HashSet相同,就不在举例子了。
java.util.TreeSet< E >
有时候,我们对集合种元素的顺序有更高的要求,我么需要元素按自然顺序排序,TreeSet
就为我们提供了这样的功能。TreeSet使用元素的自然顺序对元素进行排序,或者根据创建 set 时提供的 Comparator 进行排序,具体取决于使用的构造方法。
构造方法
方法摘要
使用示例
import java.util.Iterator;import java.util.TreeSet;public class TreeSetDemo{ public static void main(String[] args) { // 创建一个TreeSet对象,<String>为泛型,表明TreeSet中的元素必须是String类型 TreeSet<String> set = new TreeSet<String>(); // 添加元素 set.add("jiang"); set.add("gu"); set.add("jin"); System.out.println("集合中的元素个数为:" + set.size()); // 判断集合中是否包含指定元素 System.out.println(set.contains("jiang")); System.out.println("集合中第一个元素为:" + set.first()); System.out.println("集合中最后一个元素为:" + set.last()); // 遍历集合中的元素 System.out.println("集合中的元素为(迭代器Iterator):"); Iterator<String> iterator = set.iterator(); while (iterator.hasNext()) { System.out.println(iterator.next()); } System.out.println("集合中的元素为(foreach):"); for (String item : set) { System.out.println(item); } }}
通过上面的例子,其实我们可以发现TreeSet和HashSet的用法也是非常类似的。
0 0
- JAVA集合框架之Set接口实现类
- 第十五篇:JAVA集合框架之Set接口实现类
- Java复习之集合框架Set接口
- JAVA集合框架之List Set接口
- JavaSE入门学习36:Java集合框架之Set接口及其实现类HashSet和TreeSet
- java集合框架之Set集合实现类性能对比
- 集合框架之Set接口
- Java集合框架总结之Set接口的使用
- Java集合框架详解之继承set接口
- JAVA集合框架之List接口实现类
- JAVA集合框架之Map接口实现类
- 第十六篇:JAVA集合框架之List接口实现类
- 第十七篇:JAVA集合框架之Map接口实现类
- JAVA集合框架之set
- Java集合框架之Set
- Java集合框架之Set
- Java集合框架之set
- 集合框架Set接口之hashset
- ASP.NET Request.Query…
- ASP.NET .ascx文件
- ASP.NET DATASET用法
- ASP.NET DropDownList&…
- 阿里云ECS被攻击
- JAVA集合框架之Set接口实现类
- dbms_redefinition
- Android手机怎么会越用越卡?真相就在这里
- 绚丽的CSS3发光按钮特效
- [leetcode]String to Integer (atoi)
- How to deal with ptxas : fatal error : Unresolved extern function 'cudaGetParameterBuffer'
- blender 给人物角色绑定骨骼到unity3d
- 每日一vim(12)ab 与 map命令
- controller方法的返回值