您的位置:首页 > 编程语言 > Java开发

20145213《Java程序设计》第五周学习总结补充

2016-04-13 08:01 246 查看

20145213《Java程序设计》第五周学习总结补充

教材学习内容总结

欠的账都是要还的!第九章的内容躲过对酒当歌的夜,躲不过四下无人的街。由于第五周贪玩,疏忽冷落了Collection与Map,那么现在我就来温习一下吧!

认识Collection架构

针对收集对象的需求,Java SE提供了Collection API。
Collection
包含了收集对象的共同行为,然而收集对象会有不同的需求。

利用
java.util.List
接口可以在收集对象时记录每个对象的索引顺序,并可依索引取回对象。

利用
java.util.Set
接口可以使收集的对象不重复,具有集合行为。

利用
java.util.Queue
接口可以在收集对象时以队列方式,收集的对象加入至尾端,取得对象时从前端。如果希望对
Queue
的两端进行加入,移除等操作时,

则可以使用
java.util.Deque


java.util.List
含有两个子类
ArrayList
LinkedList
ArrayList
使用数组保存收集的对象,数组在内存中会是连续的线性空间,根据索引随机存取时速度快,像是排序,使用
ArrayList
会有较好的速度表现。
LinkedList
在操作接口时,采用链接结构,若收集的对象经常有变动索引的情况,采用
LinkedList
会有较高效率

java.util.Set ``````有两个子类,分别是
HashSet
TreeSet
.
java.util.Set
接口利用对象的
hashCode()
equals() ```判断收集的对象是否不重复

Queue
继承自
Collection
,所以也具有
add()
,
remove
,
element()
等方法,然而
Queue
定义了自己的
offer()
,
poll
,
peek
等方法,最主要差别是
add()
,
remove
,
element()
等方法操作失败时会抛出异常,而
offer()
,
poll
,
peek
等方法操作失败时会返回特定的值。

offer()
方法用来在队列后端加入对象,成功会返回True,失败会返回false

poll()
方法用来取出队列前端对象,若队列为空,返回null

peek()
用来取得(但不取出)队列前端对象,若队列为空,返回null

无论
List
,
Set
还是
Queue
都会有个
iterator()
方法,
iterator()
方法会返回
java.util.Iterator
操作对象,可以让你注意取得收集的对象。

接口只有一个方法必须操作时,在JDK8中可以使用
Lambda
,细节是如果在
Lambda
表达式中使用区块是,如果方法必须返回值,在区块中必需使用return,如果没使用区块,return省略

java.util.Collections
提供
sort
方法,由于必须有索引才能进行排序,因此
sort
方法接受
List
操作对象。

java.util.Collections
sort
方法要求被排序的对象必须操作
java.lang.Comparable
接口。但你的对象无法操作
java.lang.Comparable
时,
java.util.Collections
sort
方法有另一个重载版本,可接受
java.util.Comparator
接口操作的对象,如果使用这个版本,排序方式将根据
Comparator
compare
定义决定。

常用Map操作类

常用的
Map
操作类为
java.util.HashMap
java.util.TreeMap ````.在
HashMap
中建立键值对应之后,键是无序的。在
TreeMap
中建立键值,键是有序的。值得注意的是作为键的对象,必须操作
Comparable
,或者在创建时指定操作
Comparator ```接口的对象

如果想取得
Map
中所有的键,可以调用
Map
keyset()
返回
Set
对象。

如果想取得
Map
中所有的值,可以使用
Value
返回
Collection
对象。

如果想同时取得
Map
中所有的键与值,可以使用
entrySet()
方法,这会返回一个
Set
对象,每个元素都是
Map.Entry
的实例,可以调用
getKey()取得键,调用
getValue ```取得值。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: