Java容器--接口概述

言兼原创,欢迎转载,转载请注明出处:http://blog.csdn.net/chengqianyun2002
 
Interface Collection
  1. CollectionCollection体系中最上层的rootinterface,它代表一组对象集合。

  2. JDK并没有直接在CollectionInterface中规定具体的方法实现,而是将具体的方法实现在其子interface中规定,如Set,List

  3. Collection一般被用来做最通用的集合对象的传递与操作。

  4. Collection没有定义自己的同步策略,完全取决于具体的子对象的实现。因此在并发编程中,慎用Collection

  5. Collection并没有对equals(),hashCode()方法添加任何额外的规定,而是直接依赖于Object类。然而,其子接口往往规定equals()用来比较包含的元素的值,而非引用。

Interface List
  1. 一个序列化的Collection

  2. 支持精确的插入位置。

  3. 允许按index索引访问元素。

  4. 一般允许重复元素。

  5. 支持ListIterator

  6. 允许包含自已本身,但equals()hashCode()需要重写。

  7. Equals()方法被重写为比较内容,相应hashCode()同样被重写。

  8. 是否允许null并无规定,由子类决定。

Interface Set
  1. 不允许重复的元素,最多一个null

  2. 不允许包含自己为元素。

  3. 可变对象作为set元素时,如果该对象被改变后影响第1条规则,则行为未定义。

  4. 是否允许null并无规定,由子类决定。

  5. Equals()方法被重写为比较内容,相应hashCode()同样被重写。

Interface SortedSet
  1. 一个提供完全排序的Set

  2. Natural orderingComparator排序。

  3. Iterator按升序遍历SortedSet

  4. 其中元素必须实现Comparable interface或能够被构造函数里的comparator接受。

  5. 全闭空间:SortedSet sub =s.subSet(low, high+"\0");

  6. 全开空间:SortedSet sub =s.subSet(low+"\0", high);

Interface NavigableSet
  1. 一个增加了增航能力的SortedSet

  2. 允许查找指定元素附件的附合条件的最近的元素,如lower,floor, ceiling, higher

  3. 提供descendingInterator

  4. 默认升序,但同时提供获得降序NavigableSet的方法。

     

Interface Queue
  1. 提供两套插入、删除、检查的方法,一套在错误时抛出异常,一套在错误时返回特殊值。

  2. 按一定的顺序进出顺序组织队列,一般为FIFOLIFO等,无强制要求。

  3. 一般来说null不应该允许被插入到Queue中,因为null作为特殊值被poll()返回。

  4. 一般来说直接继承Objectequals(),hashCode()

Interface Deque
  1. Deque: double ended queue

  2. 一个线性的允许两端增删的Queue

  3. 提供了在两端进行增删查的方法,且支持两套方法:一套在错误时抛出异常,另一套在错误返回特殊值。

  4. 并不严格限制插入null,但强烈建议限制插入null

  5. 一般并不重载equals(),hashCode(),直接从Object继承。

Interface BlockingQueue
  1. 位于java.util.concurrent包内。

  2. 不支持插入null

  3. 线程安全的。

  4. Queue相比,支持多线程相关操作:

    1). 取出一个元素时,可能等待直到Queue非空;

    2). 插入一个元素时,可能等待直到Queue非满;

  5. 支持四套增删查方法:

    1). 错误时抛出异常;

    2). 错误时返回特殊值;

    3). 一直等待直到操作可进行;

    4). 等待一定时间直到操作可进行;

Interface BlockingDeque
  1. 位于java.util.concurrent包内。

  2. 不支持插入null

  3. 线程安全的。

  4. 一般来说,同时包括BlockingQueueDeque的接口。

Interface TransferQueue
  1. 位于java.util.concurrent包内。

  2. 不支持插入null

  3. 线程安全的。

  4. 典型地用来解决“生产者-消费者”问题。

     

Java容器--接口概述_第1张图片 

你可能感兴趣的:(Java世界)