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


    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

    参考资料

  • 相关阅读:
    汇编结合vc6的使用
    QT textbroswer textedite Qlist的常用的操作函数
    QT Qdialog的对话框模式以及其关闭
    QT生成的exe在其他电脑打开
    c++实现服务器和多个客户端的实时群聊通信
    c++ 实时通信系统(基础知识TCP/IP篇)
    c++的并发操作(多线程)
    六种Socket I/O模型幽默讲解
    c++字符串的输入
    字符串 与其他数据类型的转换,以及字符创的常用操作
  • 原文地址:https://www.cnblogs.com/N-idhogg/p/9751203.html
Copyright © 2020-2023  润新知