美文网首页IT修真院_JAVA
Map、Set、List、Queue、Stack的特点与用法

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

作者: 啊咯嘻嘻 | 来源:发表于2017-12-22 10:32 被阅读16次

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


小课堂

分享人:魏振恒

1.背景介绍

2.知识剖析

3.常见问题

4.解决方案

5.编码实战

6.扩展思考

7.参考文献

8.更多讨论


1.背景介绍

Set

Set集合类似于一个罐子,"丢进"Set集合里的多个对象之间没有明显的顺序。Set继承自Collection接口,不能包含有重复元素(记住,这是整个Set类层次的共有属性)。

Set判断两个对象相同不是使用"=="运算符,而是根据equals方法。也就是说,我们在加入一个新元素的时候,如果这个新元素对象和Set中已有对象进行注意equals比较都返回false,则Set就会接受这个新元素对象,否则拒绝。因为Set的这个制约,在使用Set集合的时候,应该注意两点:1) 为Set集合里的元素的实现类实现一个有效的equals(Object)方法、2) 对Set的构造函数,传入的Collection参数不能包含重复的元素


Set的可实例化子类

HashSet        HashSet是Set接口的典型实现,HashSet使用HASH算法来存储集合中的元素,因此具有良好的存取和查找性能。当向HashSet集合中存入一个元素时,HashSet会调用该对象的     hashCode()方法来得到该对象的hashCode值,然后根据该HashCode值决定该对象在HashSet中的存储位置。        值得主要的是,HashSet集合判断两个元素相等的标准是两个对象通过equals()方法比较相等,并且两个对象的hashCode()方法的返回值相等

它包含的方法:            contains、add、remove、clear、clone、isEmpty、size、toArray。


HashSet代码实战


List

List集合代表一个元素有序、可重复的集合,集合中每个元素都有其对应的顺序索引。List集合允许加入重复元素,因为它可以通过索引来访问指定位置的集合元素。List集合默认按元素

的添加顺序设置元素的索引。

List常用实例子类,ArrayList

ArrayList是基于数组实现的List类,它封装了一个动态的增长的、允许再分配的Object[]数组。

Vector和ArrayList在用法上几乎完全相同,但由于Vector是一个古老的集合,所以Vector提供了一些方法名很长的方法,但随着JDK1.2以后,java提供了系统的集合框架,就将

Vector改为实现List接口,统一归入集合框架体系中。


代码实战

Stack

Stack是Vector提供的一个子类,用于模拟"栈"这种数据结构(LIFO后进先出)

方法:push、pop、peek、empty、seatch


代码实战

Queue

Queue用于模拟"队列"这种数据结构(先进先出 FIFO)。队列的头部保存着队列中存放时间最长的元素,队列的尾部保存着队列中存放时间最短的元素。新元素插入(offer)到队列的尾部,访问元素(poll)操作会返回队列头部的元素,队列不允许随机访问队列中的元素。结合生活中常见的排队就会很好理解这个概念

Queue常用实例子类,ArrayDeque

是一个基于数组的双端队列,和ArrayList类似,它们的底层都采用一个动态的、可重分配的Object[]数组来存储集合元素,当集合元素超出该数组的容量时,系统会在底层重新分配一个Object[]数组来存储集合元素


ArrayDeque常用方法

remove、add、get(会报异常)、peek(不报异常)都可变为在last或first操作


代码实战


Map

Map用于保存具有"映射关系"的数据,因此Map集合里保存着两组值,一组值用于保存Map里的key,另外一组值用于保存Map里的value。key和value都可以是任何引用类型的数据。Map的key不允许重复,即同一个Map对象的任何两个key通过equals方法比较结果总是返回false。


Map常用子类,HashMap

和HashSet集合不能保证元素的顺序一样,HashMap也不能保证key-value对的顺序。并且类似于HashSet判断两个key是否相等的标准也是: 两个key通过equals()方法比较返回true、同时两个key的hashCode值也必须相等

HashMap常用方法:put、get、remove


代码实战

知识拓展:java是如何定位元素位置的?

通过hashcode定位。

在集合内放入元素时放入值相同不同引用和相同引用的区别



 undefined_腾讯视频

7.参考文献

网络

8.更多讨论

欢迎大家交流和讨论

鸣谢

感谢大家观看

BY : 魏振恒

相关文章

网友评论

    本文标题:Map、Set、List、Queue、Stack的特点与用法

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