16. Map、Set、List、Queue、Stack的特点与用法。
来源:互联网 发布:淘宝怎么投诉盗用图片 编辑:程序博客网 时间:2024/05/18 05:04
首先依旧要清楚这些集合框架的分支
collection
├List
│├LinkedList
│├ArrayList
│└Vector
│ └Stack
└Set
└Queue
Map
├Hashtable
├HashMap
└WeakHashMap
故此我们来讲述这些每个接口的特点和用法
List接口
List是一个有序,容许元素重复且取值为null的序列集合存储框架。实现List接口的常用类有LinkedList,ArrayList,Vector和Stack。
除了具有Collection接口必备的iterator()方法外,List还提供一个listIterator()方法,返回一个ListIterator接口,和标准的Iterator接口相比,ListIterator多了一些add()之类的方法,允许添加,删除,设定元素,还能向前或向后遍历。
Set接口
Set是一个不含重复元素,无序的,且有些实现子类会禁止null元素的无序集合存储框架。在这个接口下的所有存储元素,将不会用==操作符来比较两个对象是否相同,而是使用equals()方法来判断。
因为Set的这个制约,在使用Set集合的时候,应该注意两点:1) 为Set集合里的元素的实现类实现一个有效的equals(Object)方法、2) 对Set的构造函数,传入的Collection参数不能包
Stack接口
Stack是Vector提供的一个子类,用于模拟"栈"这种数据结构(LIFO后进先出)
Stack遵从后进先出原则。
Stack继承自Vector。
它通过五个操作对类Vector进行扩展,允许将向量视为堆栈,它提供了通常的push和pop操作,以及取堆栈顶点的peek()方法、测试堆栈是否为空的empty方法等
Queue接口
Queue用于模拟"队列"这种数据结构(先进先出 FIFO)。队列的头部保存着队列中存放时间最长的元素,队列的尾部保存着队列中存放时间最短的元素。新元素插入(offer)到队列的尾部,
访问元素(poll)操作会返回队列头部的元素,队列不允许随机访问队列中的元素。结合生活中常见的排队就会很好理解这个概念
Map接口
Map用于保存具有"映射关系"的数据,因此Map集合里保存着两组值,一组值用于保存Map里的key,另外一组值用于保存Map里的value。key和value都可以是任何引用类型的数据。Map的key不允许重复,即同一个Map对象的任何两个key通过equals方法比较结果总是返回false。
关于Map,我们要从代码复用的角度去理解,java是先实现了Map,然后通过包装了一个所有value都为null的Map就实现了Set集合
Map的这些实现类和子接口中key集的存储形式和Set集合完全相同(即key不能重复)
Map的这些实现类和子接口中value集的存储形式和List非常类似(即value可以重复、根据索引来查找)
- 16. Map、Set、List、Queue、Stack的特点与用法。
- Map、Set、List、Queue、Stack的特点与用法1
- Map、Set、List、Queue、Stack的特点与用法2
- Map、Set、List、Queue、Stack的特点与用法1
- Map、Set、List、Collection、Queue、Stack的特点与用法。
- Map、Set、List、Queue、Stack的特点与用法
- Map、Set、List、Queue、Stack的特点与用法1
- JAVA Map、Set、List、Queue、Stack的特点与用法
- Map、Set、List、Queue、Stack的特点与用法
- Map、Set、List、Queue、Stack的特点与用法
- Map、Set、List、Queue、Stack的特点与用法。
- Map、Set、List、Queue、Stack的特点与用法
- java 集合(set、list、map、stack、queue)的用法
- List,Map,Stack,Queue,Set的遍历
- Java中 List, Map, Stack, Queue, Set 的介绍
- list ,set,map的特点与区别
- STL 整理map、set、vector、list、stack、queue、deque、priority_queue
- STL详解(vector,list,deque,stack,queue,priority_queue;map,set)
- Android初识
- Linux C 第十一章文件操作十个问题及解答
- 分享一个安装Vs2015失败的解决方案,报错为系统找不到指定路径
- JAVA蓝桥杯字母图形
- matlab中矩阵删除一行或一列的方法
- 16. Map、Set、List、Queue、Stack的特点与用法。
- #error和#warning使用分析
- server2008的vmware和hyper-v不兼容怎么删除hyper-v
- ES6--数组
- C++primer第五版 练习5.14
- java实现排序
- Linux C第十二章进程控制编程十个问题及解答
- BP的详细推导过程
- C++学习笔记--构造函数