`
banfry
  • 浏览: 7649 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
最近访客 更多访客>>
社区版块
存档分类
最新评论

HashSet是否重复实现Set接口

 
阅读更多
如下图所示:
1,public abstract class AbstractSet<E>extends AbstractCollection<E>implements Set<E>
2,public class HashSet<E>extends AbstractSet<E>implements Set<E>

  AbstractSet已经实现了Set,HashSet再继承AbstractSet的话已经默认实现了Set接口,为什么还要显示的实现Set,是否多此一举!
期待回复!
  • 大小: 15.3 KB
分享到:
评论
3 楼 feelar 2012-10-11  
AbstractSet  虽然是 implements Set<E> 但是没有实现Set的任何方法。
Set 的所有方法是在HashSet里面实现的。不知道为什么需要2次implement Set<E>
2 楼 zhuyoufeng 2011-05-27  
我的见解啊:主要是降低了api内部的耦合,假想一下,如果现在程序员需要修改api,恰巧就是AbstractSet,很不巧的是他的一修改,整个AbstractSet就不能用了,如果HashSet只继承了AbstractSet,完了,整个api就跑不通了。

这是我的理解。
1 楼 rightrat 2010-09-20  
我觉得单继承AbstractSet也是可以的,不知道编译时有什么好处...
期待高手的解答啊

相关推荐

    ThinkinginJava之Set接口、HashSet源码学习.pdf

    HashSet类实现了Set接口,其内部基于HashMap来存储和管理元素。这意味着HashSet的性能和特性与HashMap紧密相关。由于HashMap使用哈希表结构,HashSet能够快速地插入、查找和删除元素,时间复杂度通常为O(1)。 ...

    HashSet的实现原理

    在Java编程中,HashSet是一种不允许存储重复元素的集合,它实现了Set接口。HashSet是通过HashMap来实现的,其底层使用HashMap来保存所有元素。这种实现方式让HashSet的操作非常简单高效,因为HashSet的大部分操作,...

    集合的概念及应用和HashSet保证数据不重复的原理

    Set接口(如HashSet、TreeSet)则确保元素唯一性,不保证顺序,适用于去重或存储不需排序的独特元素;而Map接口(如HashMap、TreeMap)用于存储键值对,键是唯一的,可以快速查找对应的值。 关于“HashSet保证数据...

    java中set接口使用方法详解

    Set接口的实现类主要有HashSet、TreeSet和LinkedHashSet,它们各自有不同的特性和使用场景。 1. **HashSet** HashSet是最基本的Set实现类,它的内部基于HashMap实现。这意味着它的元素存储是无序的,且通过哈希...

    set接口经常用的hashCode和equals方法详解

    ### set接口中hashCode和equals方法详解 #### 一、引言 在Java编程语言中,`Set`接口作为集合框架的重要组成部分,在实现无重复元素的数据结构方面扮演着关键角色。为了确保元素的唯一性,`Set`接口依赖于对象的`...

    源码解析jdk7.0集合:HashSet的底层实现原理.pdf

    首先,HashSet是Set接口的一个实现类,它用于存储唯一性的对象集合。所谓唯一性,指的是HashSet中不允许出现重复的元素,同时,它也允许存储null值。Set集合的特点是无序的,也就是说,集合中的元素没有固定的顺序,...

    Java集合框架Set接口.pdf

    HashSet是Set接口的最常见实现类,它的内部基于哈希表(HashMap)来存储元素。由于哈希表的特性,HashSet提供了快速的插入、删除和查找操作,时间复杂度为O(1)。这意味着在理想情况下,这些操作几乎瞬间完成。然而,...

    hashset类的使用

    在Java语言中,HashSet类是集合框架的重要组成部分,属于Set接口的一个实现。它基于哈希表的原理来存储不重复的元素,其核心在于利用哈希算法快速定位元素存储位置,从而提高数据存取的效率。本篇将详细介绍Java语言...

    set.list.map接口

    在Java中,Set接口的主要实现类有HashSet和TreeSet。 - **HashSet**:基于哈希表实现,不保证元素的顺序,插入元素时不会进行排序,允许null元素。 - **TreeSet**:基于红黑树数据结构,元素按照自然排序或自定义...

    Java软件开发实战 Java基础与案例开发详解 11-3 Set接口实现类 共19页.pdf

    #### 11-3 Set接口实现类 在Java集合框架中,`Set`接口是`Collection`接口的子接口,它不允许包含重复元素。本文将详细介绍`Set`接口及其三种主要实现类:`HashSet`、`LinkedHashSet`和`TreeSet`。 ### 11.3.1 ...

    HashSet详解和使用示例_动力节点Java学院整理

    HashSet继承自AbstractSet,实现了Set接口。它内部有一个HashMap类型的成员变量`map`,所有的操作实际上都是通过这个HashMap进行的。HashSet中的每个元素被视为HashMap的一个键(key),而值(value)通常是常量`...

    HashSet和TreeSet.doc

    Set是java中一个不包含重复元素的collection。更正式地说,set 不包含满足e1....HashSet与TreeSet都是基于Set接口的实现类。其中TreeSet是Set的子接口SortedSet的实现类。Set接口及其子接口、实现类的结构如下所示。

    java中set、list和map的使用方法实例

    // set容器接口的实现类有HashSet和 LinkedHashSet两个 // HashSet不保证迭代顺序, LinkedHashSet按照元素插入的顺序迭代. // 学习List对象容器的使用 // List容器中的对象允许重复 // 常用的list接口的实现类有...

    HashMap与HashTable和HashSet的区别

    在Java集合框架中,`HashMap`, `HashTable` 和 `HashSet` 是三个重要的数据结构,它们分别实现了`Map`接口和`Set`接口,提供了不同的功能来满足不同的编程需求。本文将重点分析这三种数据结构之间的区别,特别是针对...

    Java面试题 从源码角度分析HashSet实现原理

    HashSet是Java集合框架中的一种Set实现,HashSet实现了Set接口,提供了无序、不可重复的集合操作。通过源码分析, HashSet的实现原理可以分为以下几个方面: 1. HashSet的构造函数:HashSet的构造函数中,会创建一...

    java 运用集的相关类(Set)

    Java提供了多种Set接口的实现,如HashSet、TreeSet和LinkedHashSet。 1. HashSet:这是最常用的Set实现,它不保证元素的顺序,允许使用null值,但不允许元素重复。HashSet内部使用哈希表来存储元素,因此添加、删除...

    HashSet类的用法.pdf

    `HashSet`是Java集合框架的一部分,它实现了`Set`接口。`HashSet`不允许重复的元素,并且不保证元素的顺序。此外,`HashSet`是非同步的,这意味着多线程环境下的安全问题需要通过外部同步机制解决。 #### 二、特点 ...

    对于java集合类的一个简单介绍

    ArrayList和LinkedList是List接口的两个常用的实现类,而HashSet和TreeSet是Set接口的两个常用的实现类。Iterator是一种设计模式,提供了遍历集合的能力。Collection接口是Java集合类中最高级的接口,提供了基本的...

    treemap treeset hashset hashmap 简要介绍

    综上所述,选择`TreeMap`、`TreeSet`、`HashSet`还是`HashMap`,主要取决于具体的应用需求,比如是否需要保持元素的排序,是否允许重复元素,以及对插入、删除和查找操作速度的要求。正确理解并使用这些集合类,可以...

Global site tag (gtag.js) - Google Analytics