20145213《Java程序设计》第五周学习总结补充
2024-09-20 04:36:10
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,失败会返回falsepoll()
方法用来取出队列前端对象,若队列为空,返回nullpeek()
用来取得(但不取出)队列前端对象,若队列为空,返回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 ```取得值。
最新文章
- Web jquery表格组件 JQGrid 的使用 - 6.准备工作 &; Hello JQGrid
- 为什么Javascript中的基本类型能调用方法?
- TeleportStone.lua --传送宝石
- VA中用文件头注释和函数头注释Suggestions
- paas架构之docker——容器进程管理
- 设置dt height 保证dd在同一行
- 黄聪:WordPress 备案期间临时关闭站点设置404
- 如何自己编译生成Eclipse插件,如hadoop-eclipse-plugin-2.2.0.jar
- [python]pep8编码规范
- Solr4.8.0源码分析(23)之SolrCloud的Recovery策略(四)
- SQL Server 大数据量批量插入
- 基于visual Studio2013解决C语言竞赛题之1066进制转化
- HDFS副本放置策略和机架感知
- .net core在网关中统一配置Swagger
- 动态dp
- SRD_PreloaderCore
- 02. Pandas 1|数据结构Series、Dataframe
- Using the SDRAM on Altera’s DE1-SoC Board with Verilog Designs
- IPSec协议;IPv6为何增加对IPSec协议的支持
- js 正则表达式:密码必须由6-12位数字加字母组成
热门文章
- SQL 分组去重
- XDU 1160 - 科协的数字游戏I
- CAN总线 SJA1000中断
- mysql explain 中key_len的计算
- 详解 iOS 上机题!附个人见解
- 如何在网页端启动WinForm 程序
- html5 图片转为base64格式异步上传
- 小米手机无法打开程序报错Unable to instantiate application com.android.tools.fd.runtime.BootstrapApplication的解决办法
- ios 异常捕获
- getopt函数的使用——分析命令行参数