美文网首页
java集合——Set

java集合——Set

作者: spiritTalk | 来源:发表于2016-04-16 16:56 被阅读71次

Set接口无序(意味着不能通过下标读取),并且不允许重复元素。与Set接口相关的部分UML类图如下:

其主要实现类为:HashSet、LinkedHashSet、TreeSet。

HashSet

    private transient HashMap<E,Object> map;

    // Dummy value to associate with an Object in the backing Map
    private static final Object PRESENT = new Object();

1、HashSet内部使用HashMap,HashSet集合内部所有的操作基本上都是基于HashMap实现的,所以HashSet中的元素是无序的。
2、HashSet中的元素作为HashMap的 key,value就是这个 PRESENT 。

LinkedHashSet

1、LinkedHashSet继自HashSet,其构造时调用HashSet的构造方法,但是内部却是用的LinkedHashMap。

    public LinkedHashSet(int initialCapacity, float loadFactor) {
        super(initialCapacity, loadFactor, true);
    }

    HashSet(int initialCapacity, float loadFactor, boolean dummy) {
        map = new LinkedHashMap<>(initialCapacity, loadFactor);
    }

2、它跟HashSet一样,把value做为一个dummy的object,然后结合key元素,放入LinkedHashMap里。

TreeSet

1、TreeSet实现的是NavigableSet接口,但NavigableSet接口继承自SortedSet接口,SortedSet接口继承自Set接口。
2、TreeSet虽然使用的是NavigableMap,但无参构造函数里,NavigableMap便是TreeMap。

private transient NavigableMap<E, Object> backingMap;

public TreeSet() {
    backingMap = new TreeMap<E, Object>();
}

相关文章

  • 聊聊Java中的Set -《Java语言程序设计进阶篇》读书笔

    Set是java集合框架中集合的一种。 java集合包括List,Set还有Queue。我们今天的主角就是Set。...

  • 集合(二)~Set

    一、Set集合概述和特点 1. Set集合概述和特点 java.util.Set 接口和 java.util.Li...

  • Java集合类初探

    参考原文 一 java集合类简介 1、java集合大致可以分为Set、List、Queue、Map四类。 Set:...

  • java常用方法

    java集合的方法:①Set set = new HashSet<>();②set.cont...

  • java常用方法

    java集合的方法:①Set set = new HashSet<>();②set.cont...

  • Java集合

    1、java 集合概述 Set :无序、不可重复的集合。 List : 有序、重复的集合。 Queue:Java ...

  • Java基础之集合框架

    一、Java集合类简介: Java集合大致可以分为Set、List、Queue和Map四种体系。 其中Set代表无...

  • JAVA集合

    java集合分类 Java集合大致可以分为Set、List、Queue和Map四种体系,其中Set代表无序、不可重...

  • Java基础

    Java集合框架 一、Java集合类简介: Java集合大致分为四种体系:Set:无序、不可重复的集合List:有...

  • Map集合的五种遍历方式及Treemap方法

    Map集合:链接: Map集合的五种遍历方式及Treemap方法Set集合:链接: Java中遍历Set集合的三种...

网友评论

      本文标题:java集合——Set

      本文链接:https://www.haomeiwen.com/subject/wofolttx.html