美文网首页
Java容器:Set

Java容器:Set

作者: CieloSun | 来源:发表于2017-07-02 14:54 被阅读0次

Set和数学中的集合十分类似,在Java中,Set是一种绝不会包含两个相等元素的存储结构。在阅读此文前请阅读Java容器:Map

Set方法

增添方法:

  • boolean add(E e);
  • boolean addAll(Collection c);将参数容器与该Set对象做并集。
    查询方法:
  • int size();
  • boolean isEmpty();
  • boolean equals(Object o);
  • Iterator<E> iterator();对Set对象迭代需要使用迭代器。
  • boolean contains(Object o);查询集合中是否包括某个对象。
  • boolean containsAll(Collection c);查询该集合是否包括参数容器对象中所有对象。
  • Object[] toArray();
  • <T> T[] toArray(T[] a);
    删除方法:
  • boolean remove(Object o);
  • boolean removeAll(Collection c);用Set对象减去参数容器中对象,即差集,返回值用于确认集合是否改变。
  • boolean retainAll(Collection c);将参数容器与该Set对象做交集,即保留下共同内容,返回值用于确认集合是否改变。
  • void clear();

HashSet

HashSet底层用一个HashMap对象来存储内容,因此,可以说它是包装过的HashMap。也因此,HashSet和HashMap的构造函数类似,都可以使用初始容量initialCapacity和负载因子loadFactor对其初始化(对于HashSet,会在构造函数中对其所属的HashMap对象初始化)。同样的原因,对于Map中可以使用的方法,Set大多照旧。此外,由于HashMap对象的Entry需要key,value两个参数,而Set对象仅需要key参数来存储,系统会构建一个new Object()对象PRESENT来作为HashMap中Entry的value。

    private transient HashMap<E,Object> map;
    private static final Object PRESENT = new Object();

可以说HashSet就是一个只用key存储的HashMap。

TreeSet

和HashSet类似,TreeSet底层也是用Map实现的,TreeSet类有两个成员对象:

    private transient NavigableMap<E,Object> m;
    private static final Object PRESENT = new Object();

这里面用的NavigableMap我们学过Map后知道是TreeMap的上层接口,实际上还是一个TreeMap。

综上,在系统了解Map后学习Set,仅需要学习Set的使用即可。

相关文章

  • 集合框架总结

    Java的主要容器: CollectionListArrayListLinkedListVector(过时)Set...

  • Java容器:Set

    Set和数学中的集合十分类似,在Java中,Set是一种绝不会包含两个相等元素的存储结构。在阅读此文前请阅读Jav...

  • Java面试题

    Java基础 容器 1.Java容器都有哪些 总体分为Collection 、Map,细分为List、Set、Ma...

  • List、Set和Map

    java 常用集合list与Set、Map区别及适用场景总结Java中容器[Collection(List,Set...

  • Java学习第三周总结

    容器 容器(Container)- 承载其他对象的对象Collection List 列表 Set 集合从Java...

  • 2.Java容器

    1.Java的容器都有哪些?主要分为Collect和Map容器。其中Collect容器又细分为:Set、List、...

  • java容器——CopyOnWriteArrayList/Set

    夯实基础系列:基础是否扎实,决定你是否能走的更稳更远。 Copy-On-Write Copy-On-Write(C...

  • java容器总结Set

    Set总结 首先一个Set不包括重复元素(包括可变对象)的Collection,是一种无序的集合。Set不包含满 ...

  • 多线程juc容器

    java_basic 1 juc容器 collections List Set Map Queue CopyO...

  • Java容器List、set、map

    无论实在工作还是面试中都经常会与java容器打交道,虽然平时接触的很多,但是很少有深入的去了解细节问题,往往在面试...

网友评论

      本文标题:Java容器:Set

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