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


教材学习内容总结

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

  1. 认识Collection架构
  • 针对收集对象的需求,Java SE提供了Collection API。Collection 包含了收集对象的共同行为,然而收集对象会有不同的需求。
  • 利用java.util.List接口可以在收集对象时记录每个对象的索引顺序,并可依索引取回对象。
  • 利用java.util.Set接口可以使收集的对象不重复,具有集合行为。
  • 利用java.util.Queue接口可以在收集对象时以队列方式,收集的对象加入至尾端,取得对象时从前端。如果希望对Queue的两端进行加入,移除等操作时,
    则可以使用java.util.Deque
  • java.util.List含有两个子类ArrayListLinkedListArrayList使用数组保存收集的对象,数组在内存中会是连续的线性空间,根据索引随机存取时速度快,像是排序,使用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.Collectionssort方法要求被排序的对象必须操作java.lang.Comparable接口。但你的对象无法操作java.lang.Comparable时,java.util.Collectionssort方法有另一个重载版本,可接受java.util.Comparator接口操作的对象,如果使用这个版本,排序方式将根据Comparatorcompare定义决定。
  1. 常用Map操作类
  • 常用的Map操作类为java.util.HashMapjava.util.TreeMap ````.在 HashMap 中建立键值对应之后,键是无序的。在 TreeMap 中建立键值,键是有序的。值得注意的是作为键的对象,必须操作 Comparable ,或者在创建时指定操作 Comparator ```接口的对象
  • 如果想取得Map中所有的键,可以调用Mapkeyset()返回Set对象。
  • 如果想取得Map中所有的值,可以使用Value返回Collection对象。
  • 如果想同时取得Map中所有的键与值,可以使用entrySet()方法,这会返回一个Set对象,每个元素都是Map.Entry的实例,可以调用getKey()取得键,调用 getValue ```取得值。

最新文章

  1. Web jquery表格组件 JQGrid 的使用 - 6.准备工作 & Hello JQGrid
  2. 为什么Javascript中的基本类型能调用方法?
  3. TeleportStone.lua --传送宝石
  4. VA中用文件头注释和函数头注释Suggestions
  5. paas架构之docker——容器进程管理
  6. 设置dt height 保证dd在同一行
  7. 黄聪:WordPress 备案期间临时关闭站点设置404
  8. 如何自己编译生成Eclipse插件,如hadoop-eclipse-plugin-2.2.0.jar
  9. [python]pep8编码规范
  10. Solr4.8.0源码分析(23)之SolrCloud的Recovery策略(四)
  11. SQL Server 大数据量批量插入
  12. 基于visual Studio2013解决C语言竞赛题之1066进制转化
  13. HDFS副本放置策略和机架感知
  14. .net core在网关中统一配置Swagger
  15. 动态dp
  16. SRD_PreloaderCore
  17. 02. Pandas 1|数据结构Series、Dataframe
  18. Using the SDRAM on Altera’s DE1-SoC Board with Verilog Designs
  19. IPSec协议;IPv6为何增加对IPSec协议的支持
  20. js 正则表达式:密码必须由6-12位数字加字母组成

热门文章

  1. SQL 分组去重
  2. XDU 1160 - 科协的数字游戏I
  3. CAN总线 SJA1000中断
  4. mysql explain 中key_len的计算
  5. 详解 iOS 上机题!附个人见解
  6. 如何在网页端启动WinForm 程序
  7. html5 图片转为base64格式异步上传
  8. 小米手机无法打开程序报错Unable to instantiate application com.android.tools.fd.runtime.BootstrapApplication的解决办法
  9. ios 异常捕获
  10. getopt函数的使用——分析命令行参数