2018-2019-20172321 《Java软件结构与数据结构》第四周学习总结

教材学习内容总结

第六章

  • 6.1列表集合

  • 列表集合是一种概念性表示法,其思想是使事物以线性列表的方式进行组织。

  • 列表集合分为三类:有序列表、无序列表、索引列表

    • 有序列表:其元素按照元素- 的内在特性排序。
    • 无序列表:元素只按照它们在列表的位置进行排序。
    • 索引列表:元素根据自己的数字索引进行排序。
  • 6.2Java集合API中的列表

  • 列表的一些操作

    操作 描述
    add(E element) 向列表末端添加一个元素
    add(int index,E element) 在指定索引处插入一个元素
    get(int index) 返回指定索引处的元素
    remove(int index) 删除指定索引处的元素
    remove(o objecr) 替代指定索引处的元素
    set(int index, E element) 返回列表中的元素数量
  • Java集合API提供的列表类主要是支持索引列表;Java集合API中提供了使用数组实现的ArrayList类和使用链表实现的LinkedList类,它们都可以存储由泛型参数E定义的元素,同时也都实现了List接口。

  • 6.6使用数组实现列表

  • 基于数组实现的列表首先要把列表的一端固定在索引0处,设置一个整数变量rear表示列表中的元素数目,同时表示列表末端的下一个可用位置。

  • 优势——

    • ①支持自动改变大小的功能(最大的优势);
    • ②利用泛型可以用于存储不同非基本类型的数据;
    • ③可以灵活的插入元素 ;
    • ④可以灵活的删除元素 。
  • 6.7使用链表实现列表

  • remove操作:remove操作是链表实现列表最重要的一步,该方法中提供的遍历整个列表的方法,为之后实现contains方法提供了帮助。

教材学习中的问题和解决过程

  • 问题1:教材上有一句话不是特别理解,表述引索列表和数组根本区别得时候出现得,
如果删除了一个元素,其他元素的位置会像"坍缩"了一样以消除产生的间隙。

这个坍缩的意思就很有意思了,是怎么坍缩来腾出位置嘞?

  • 解答:后面的元素会自动的补齐索引,就比如说排队的一列队伍,中间有人不愿意排下去了而离开队伍,后面的人就会向前补齐;其实是个很简单的概念,不知道为什么要用这么难懂的一个词。

代码调试中的问题和解决过程

  • 在实现pp6.7的时候,我运行测试类,发现所有的部分都是null或者0,这就奇了他的怪了,没有道理啊,我又回到我的ArrayList类里去查看我的方法,感觉是没什么问题的啊,就算是其他类错了,size方法也不应该得到0啊

  • 后来我随手点了debug,然后追根溯源,然后弹到了一个奇怪的方法上,原来我在写 ArrayOrderedList类的时候因为直接复制了我先打上去的书上的例题,声明的时候随手Alt+Enter就有了import week5.书上代码.jsjf.ArrayList;所以我的ArrayOrderedList类其实指向了那个什么方法都return null的例题类里面,真是强行降智。

代码托管

上周考试错题总结

  • Because queue operations modify both ends of the collection, fixing one end at index 0 eliminates the requirement that elements be shifted.

    • A .True
    • B .False
  • 正确答案: B 你的答案: A
  • 理解:当时没认真看题,书上的原话是因此将一端固定于引索0处要求移动元素,所以是错的。

结对及互评

  • 博客中值得学习的或问题:

    • 优点:代码编写时遇到的问题记录非常详细;对书本上的内容理解也到位
    • 缺点:没啥缺点,我觉得好的yipi。
  • 本周结对学习情况

其他(感悟、思考等,可选)

国庆假期已经余额不足了,一号几乎在912花掉了一整天,5号开始就开始学习了,其实我觉得一直玩还挺无聊的,学习一下还是不错的感觉,但是一想到未来的半个月每天都要花两三个小时走队列,我就为自己的学习时间不足而感到恐惧。

学习进度条

代码行数(新增/累积) 博客量(新增/累积) 学习时间(新增/累积)
目标 5000行 30篇 400小时
第一周 0/0 1/1 8/8
第二周 671/671 1/2 17/25
第三周 345/1016 1/3 15/40
第四周 405/1421 2/5 23/63

参考资料

2018-2019-20172321 《Java软件结构与数据结构》第四周学习总结的更多相关文章

  1. 20172328 2018—2019《Java软件结构与数据结构》第二周学习总结

    20172328 2018-2019<Java软件结构与数据结构>第二周学习总结 概述 Generalization 本周学习了第三章集合概述--栈和第四章链式结构--栈.主要讨论了集合以 ...

  2. 20172321 2018-2019《Java软件结构与数据结构》第三周学习总结

    教材学习内容总结 第五章 5.1概述 队列是一种线性集合,其元素从一端加入,从另一端删除:队列的处理方式是先进先出(First in First out). 与栈的比较(LIFO) 栈是一端操作,先进 ...

  3. 20172302 《Java软件结构与数据结构》实验三:查找与排序实验报告

    课程:<Java软件结构与数据结构> 班级: 1723 姓名: 侯泽洋 学号:20172302 实验教师:王志强老师 实验日期:2018年11月19日 必修/选修: 必修 实验内容 (1) ...

  4. 20172302 《Java软件结构与数据结构》实验二:树实验报告

    课程:<Java软件结构与数据结构> 班级: 1723 姓名: 侯泽洋 学号:20172302 实验教师:王志强老师 实验日期:2018年11月5日 必修/选修: 必修 实验内容 (1)参 ...

  5. 20172302 《Java软件结构与数据结构》实验一:线性结构实验报告

    课程:<Java软件结构与数据结构> 班级: 1723 姓名: 侯泽洋 学号:20172302 实验教师:王志强老师 实验日期:2018年9月26日 必修/选修: 必修 实验内容 (1)链 ...

  6. 20172301 《Java软件结构与数据结构》实验三报告

    20172301 <Java软件结构与数据结构>实验三报告 课程:<Java软件结构与数据结构> 班级: 1723 姓名: 郭恺 学号:20172301 实验教师:王志强老师 ...

  7. 20172301 《Java软件结构与数据结构》实验二报告

    20172301 <Java软件结构与数据结构>实验二报告 课程:<Java软件结构与数据结构> 班级: 1723 姓名: 郭恺 学号:20172301 实验教师:王志强老师 ...

  8. 20172329 2018-2019 《Java软件结构与数据结构》实验三报告

    20172329 2018-2019-2 <Java软件结构与数据结构>实验三报告 课程:<Java软件结构与数据结构> 班级: 1723 姓名: 王文彬 学号:2017232 ...

  9. 20172329 2018-2019-2 《Java软件结构与数据结构》实验二报告

    20172329 2018-2019-2 <Java软件结构与数据结构>实验二报告 课程:<Java软件结构与数据结构> 班级: 1723 姓名: 王文彬 学号:2017232 ...

  10. 20172301 《Java软件结构与数据结构》实验一报告

    20172301 <Java软件结构与数据结构>实验一报告 课程:<Java软件结构与数据结构> 班级: 1723 姓名: 郭恺 学号:20172301 实验教师:王志强老师 ...

随机推荐

  1. 伪类选择器a的属性

    在使用a中的四个属性时必须按照顺序来,不管用那两个都是要依照这个顺序来 1.a:link未访问过的状态 a:link{ color:red; } 2.a:visited已访问的 a:visited{ ...

  2. 飞控入门之C语言结构体、枚举

    结构体 先来说明一下,结构体存在的意义.比如说有一只猫,要在C语言程序中综合描述它,那么可以这样说,它的体重是float类型的,颜色是char类型的,它的一些食物名字是一个数组,那么如果分开定义这些变 ...

  3. python 文件读取方法详解

    话不多说直接码 # 绝对路径 # f = open('/Users/fangxiang/Downloads/我的古诗.text', mode='r', encoding='utf-8') # cont ...

  4. python教程(四)·序列

    距离上次的小项目已经休息了很长一段时间,是时候来继续本系列教程了.这一节开始我们将深入python中的数据结构. 序列的概念 在python中,最基本的数据结构是序列,序列包含一个或多个元素,每个元素 ...

  5. go语言Mutex与RWMutex用法

    Mutex(互斥锁) Lock()加锁,Unlock()解锁 适用于读写不确定,并且只有一个读或者写的场景 例: package main import ( "sync" &quo ...

  6. IC设计笔试面试小问题总结(随时更新)-IC设计笔记(三)

    都是一些细节性问题,放在一起记忆,一问一答的形式,有任何问题欢迎文章上方微博讨论,多思多想. 1.What makes the difference between Run time and CPU ...

  7. 实验四: Android程序设计

    实验四 Android程序设计 1 实验目的及要求 1.安装 Android Stuidio. 2.完成Hello World, 要求修改res目录中的内容,Hello World后要显示自己的学号. ...

  8. 20155231 2016-2017-2 《Java程序设计》第2周学习总结

    20155231 2016-2017-2 <Java程序设计>第2周学习总结 教材学习内容总结 学习目标: 了解java编程风格 认识java的类型与变量 掌握java流程控制 第三章基础 ...

  9. 20155327 实验一《Java开发环境的熟悉》实验报告

    实验内容 1.使用JDK编译.运行简单的Java程序: 2.使用Eclipse 编辑.编译.运行.调试Java程序. 实验知识点 JVM.JRE.JDK的安装位置与区别: 命令行运行javac:jav ...

  10. 20155328 《Java程序设计》 实验二(Java面向对象程序设计) 实验报告

    20155328 <Java程序设计> 实验二(Java面向对象程序设计) 实验报告 单元测试 一.单元测试和TDD 编程时需理清思路,将编程需求等想好,再开始编.此部分可用伪代码实现. ...