Set及其子类的源代码阅读笔记

Set:

1,Set接口,内部的方法和Collection基本一致.

2 AbstractSet,其实现的方法,只有equals,hashcode和removeAll

 

HashSet:

1, HashSet内部使用HashMap来做Container,HashSet存储的元素,作为key,存入Map中,HashSet的构造函数,主要还是通过HashMap来的,会有一个dump的Object对象来做元素填充进去.

2,HashSet内部的大部分方法,都是通过HashMap来实现的。

 

LinkedHashSet:

是HashSet的子类,没有什么特别的方法,就是Contianer换成了LinkedHashMap,也就是说其内部的实现,是一个链表

 

SortedSet:

1, 其subset,返回的也是Sortset。

2, 有专门获得Comparator的方法。但是没有设置的方法

3,headSet和TailSet。这两个方法,还是挺不错的。就是截取。

 

TreeSet:

1,和HashSet一样,内嵌了一个NavigableMap,所以来说。大部分方法,都是调用其的实现。

2,有一个subSet方法,和一些Queue的方法,在这里,我觉得很奇怪。为什么要用一个Set的概念。可能只是逻辑上的作用吧。

你可能感兴趣的:(set)