zoukankan      html  css  js  c++  java
  • 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,也是同步的。

  • 相关阅读:
    1011. A+B和C (15)
    1010. 一元多项式求导 (25)
    1009. 说反话 (20)
    1007. 素数对猜想 (20)
    1008. 数组元素循环右移问题 (20)
    1006. 换个格式输出整数 (15)
    1005. 继续(3n+1)猜想 (25)
    算法学习(八)
    算法学习(七)
    算法学习(六)
  • 原文地址:https://www.cnblogs.com/jiqianqian/p/6560066.html
Copyright © 2011-2022 走看看