`

Java集合工具类之Set - HashSet

阅读更多

 

4.  Set

Set 是不包含重复元素的集合。可以更加正式地表达为,在 set 里面的元素 e1,e2, 不允许 e1.equals(e2), 而且最多有一个 null 元素。

Set 的主要方法如下,可以看出 List Set 在方法上的区别了, List 能够根据类似于 index ,来找到元素的方法,而 set 只管往集合里面放东西,并不管其插入的顺序, List 有比较严格的插入顺序。

//Set 是否为空

boolean isEmpty();

// 是否包含指定元素

boolean contains(Object o);

// 遍历 Set

Iterator<E> iterator();

// 转化成数组

Object[] toArray();

// 添加元素

boolean add(E e);

// 清空集合

void clear();

// 只保留包含指定集合的元素

boolean retainAll(Collection<?> c);


4.1 HashSet

1 HashSet 的数据结构和工作原理

HashSet 的基本数据结构是 HashMap HashMap 的基本数据结构是哈希表和链表,在构造函数上可以参见 HashMap 的工作原理,和 HashMap 一样,影响性能的因素包括: set 的初始化容量大小,容量因子,和 HashCode 的构造,其主要方法实现如下:

/**

* 添加元素,注意是将 elment 作为 key 存进 HashupMap

* 同时指定所有对应的 element value 都为同一个对象,

* 这样可以防止元素重复,同时可以看出 Hashset 允许

* 空元素

*/

public boolean add(E e) {

       return map.put(e, PRESENT)==null;

}

/**

* 移除元素

*/

public boolean remove(Object o) {

       return map.remove(o)==PRESENT;

}

/**

* 清空 set

*/

public void clear() {

       map.clear();

}

 

/**

*Clone Set

*/

public Object clone() {

       try {

              HashSet<E> newSet = (HashSet<E>) super.clone();

              newSet.map = (HashMap<E, Object>) map.clone();

              return newSet;

       } catch (CloneNotSupportedException e) {

              throw new InternalError();

       }

}

 

public boolean contains(Object o) {

       return map.containsKey(o);

}

 

public boolean isEmpty() {

       return map.isEmpty();

}

public int size() {

       return map.size();

}

 

public Iterator<E> iterator() {

       return map.keySet().iterator();

}

分享到:
评论

相关推荐

    Java集合类List-Set-Map的区别和联系.doc

    Collections 是 Java 中提供的一个工具类,提供了对集合类的操作方法,如 sort()、binarySearch()、max() 等。Collections 类提供了对集合类的搜索、排序、线程安全等操作。 四、如何选择集合类 在选择集合类时,...

    Java集合排序及java集合类详解.pdf

    ### Java集合排序及Java集合类详解 #### 一、集合框架概述 集合框架是Java编程语言的核心组件之一,用于组织和操作数据集。Java集合框架提供了多种数据结构,包括列表(List)、集(Set)和映射(Map),这些数据结构...

    精通java集合框架--List,Set..

    ### 精通Java集合框架——List, Set, Map #### 概述 Java集合框架是一种高度抽象且灵活的数据组织工具,它通过一系列接口来定义不同类型的数据容器,并提供了丰富的操作这些容器的方法。本文将深入探讨Java集合...

    Java基础----集合类汇总

    Java集合框架还包含了一些工具类,如Collections和Arrays,它们提供了各种实用方法,如排序、复制、反转和查找集合中的特定元素。此外,Set和List接口都有一个叫做CopyOnWriteArrayList和CopyOnWriteArraySet的特殊...

    牛逼的java常用工具类

    1. **集合框架**:Java集合框架是Java中处理对象集合的核心API,包括List、Set、Map等接口以及ArrayList、HashSet、HashMap等实现类。高效的数据结构如TreeSet和LinkedHashMap在排序和保持插入顺序方面具有重要作用...

    Java-list-set-map.zip_Java list

    此外,Java集合框架还提供了许多高级功能,如`Collections`工具类提供的排序、反转、查找等方法,以及`Stream API`带来的函数式编程能力,能够简化和优化代码。在处理大量数据时,了解并合理利用这些特性至关重要。 ...

    java 常用工具类

    Java工具类是Java编程中非常重要的组成部分,它们提供了一系列预定义的方法,可以帮助开发者高效地处理各种常见任务,而无需从头实现。在Java中,最知名的工具类库是`java.util`包,它包含了大量方便实用的类。下面...

    Java-Java集合教程

    9. **Collections工具类**: - 提供了对集合的各种操作,如排序、查找、填充、反转等。 10. **流(Stream)**:Java 8引入的新特性,允许以声明性方式处理集合,支持并行操作和函数式编程。 通过学习Java集合教程,...

    java常用工具类

    1. **集合框架**:Java集合框架是Java中处理对象集合的核心部分,包括List、Set、Queue和Map等接口,以及ArrayList、LinkedList、HashSet、HashMap等实现类。它们提供了添加、删除、查找和遍历元素的方法,极大地...

    整理的若干java常用工具类

    1. **集合框架**:Java集合框架是Java工具类的一个重要组成部分,包括List、Set、Map等各种接口和实现类,如ArrayList、LinkedList、HashSet、HashMap等。这些类提供了丰富的操作方法,如添加元素、删除元素、查找...

    Java集合框架总结

    Java集合框架是Java标准库的一部分,它提供了一系列的接口和类来存储和操作各种类型的对象集合。这些接口和类遵循一致的设计模式,使得开发人员可以方便地管理和操作数据。本文档将深入探讨Java集合框架的关键组成...

    Java_Collection_List-Set-Map.zip_list set map

    在Java编程语言中,集合框架是处理对象组的重要工具,主要包括List、Set和Map三大接口。这些接口由Java Collection Framework提供,它是一个统一的架构,用于存储和操作各种类型的对象。接下来,我们将深入探讨这三...

    java集合思维导图

    Java集合框架还包含了一些工具类,如`Collections`(提供对集合的静态方法)、`Iterator`(遍历集合元素)、`Comparator`(用于比较对象)等。这些工具极大地提高了代码的可读性和效率。 在实际应用中,选择合适的...

    Java集合类详解总结

    Java集合框架主要包括`Collection`、`Set`、`List`、`Queue`、`Deque`、`Map`等接口和它们的具体实现类如`ArrayList`、`LinkedList`、`Vector`、`Stack`、`HashSet`、`HashMap`等。下面将对这些核心概念和类进行深入...

    JAVA集合(List,Set,Map)

    ### JAVA集合(List, Set, Map)详解 #### 集合框架概述 Java集合框架是Java编程语言中处理数据组织的核心部分。它提供了一系列接口、抽象类和具体实现类,帮助开发者有效地管理对象集合。本篇文章将深入探讨集合框架...

    Java集合类原理详解.pdf

    ### Java集合类原理详解 #### 1. 集合框架概述 集合框架是Java编程语言的核心组件之一,用于组织和操作数据集。它提供了一种灵活高效的方式来存储和访问对象集合,支持多种数据结构,如列表(List)、集(Set)、映射...

    Java 集合类 简单Demo

    总的来说,这个示例着重介绍了Java集合框架的基本用法,包括创建、操作和遍历集合,以及一些常用的工具类方法。通过深入理解这些概念,开发者可以更好地设计和优化程序,提高代码的效率和可维护性。

    java集合框架图

    此外,还有五个抽象类以及多个实现类,它们共同构成了Java集合框架的基础。 #### 二、核心接口介绍 1. **`Collection`接口**: - 这是最基本的接口,所有其他集合接口都是它的子类。它代表了一组对象,其中可能...

    大学课程讲义-Java基础-Java集合.pptx

    Collections 工具类是 Java 集合框架中的一种工具类,提供了多种集合操作方法,如排序、查找、复制等。Collections 工具类可以帮助开发者快速实现集合操作,提高开发效率。 Enumeration 是 Java 集合框架中的一种...

Global site tag (gtag.js) - Google Analytics