Map、Set、List、Queue、Stack的特点与用法

  • Map

        提供了一个从键映射到值得数据结构。其中键不能重复,值可以重复。

        有多个实现了该接口的类:HashMap、TreeMap、LinkedHashMap等。其中,HashMap是基于散列表实现的,TreeMap是基于红黑树实现的,LinkedHashMap是基于列表来维护内部的顺序的。

  • Set

        主要特点是集合中的元素不能重复,因此存入Set的每个元素都必须定义equals()方法来确保对象的唯一性。

        该接口有两个实现类:HashSet和TreeSet。其中TreeSet实现了SortedSet接口,容器中的元素时有序的。

        只能用Iterator实现单向遍历。

        Set中没有同步方法。

  • List

        可以随机访问包含的元素。

        按对象进入的顺序保存对象。

        可以在任意位置进行插入、删除元素。

        允许重复元素。

  • Queue

        队列,FIFO(先进先出)。

        Queue使用时要尽量避免Collection的add()和remove()方法,而是要使用offer()来加入元素,使用poll()来获取并移出元素。它们的优点是通过返回值可以判断成功与否,add()和remove()方法在失败的时候会抛出异常。 如果要使用前端而不移出该元素,使用element()或者peek()方法。 
值得注意的是LinkedList类实现了Queue接口,因此我们可以把LinkedList当成Queue来用。

        Queue 实现通常不允许插入 null 元素,尽管某些实现(如 LinkedList)并不禁止插入 null。即使在允许 null 的实现中,也不应该将 null 插入到 Queue 中,因为 null 也用作 poll 方法的一个特殊返回值,表明队列不包含元素。

  • Stack

        栈,后进先出。

        继承自Vector,也是同步的。

原文地址:https://www.cnblogs.com/jiqianqian/p/6560066.html