20172318 2018-2019-1 《程序设计与数据结构》第4周学习总结

20172318 2018-2019-1 《程序设计与数据结构》第4周学习总结

教材学习内容总结

列表

  • 列表集合有如下3种类型:
    • 有序列表(orderedlist),其元素按照元素的某种内在特性进行排序。有序列表中的元素具备内在关联,这种关联定义了元素之间的顺序。
      html

    • 无序列表(unorderedlist),其元素间不具备内在顺序,元素按照它们在列表中的位
      置进行排序。无序列表中的元素按使用者所选择的任意方式排序·
      node

    • 索引列表(indexedlist),其元素能够用数字索引来引用。索引列表为它的元素维护一段连续的数字索引值·
      git

  • 使用数组实现列表
    • 为了不要移动元素。可使用环形数组方法,但当从列
      表中间插入或删除元素时,仍须要移动元素。
    • remove操做要求咱们查找仵为参数传递的元素,若是找到就从列表中将其删除。而后,
      数组中更高索引的元素向下平移以填补空隙。数组

    • contains操做的做用是判断指定元素是否包含在列表当中。数据结构

    • add操做是将一个元素添加到有序表中的惟一方式。调用中没有指定添加到的位置,
      由于元素自己就决定了它们的次序。与remove操做很是像,add操做也须要比较和平移操
      做:进行比较以找到元素在列表中的正确位置,而后平移元素以便为新元素腾出一个位置。ide

    • 只有Comparable对才能存储在有序列表中。学习

  • 使用链表实现列表
    • remove操做是LinkedList类的一部分,为无序列表和有序列表所共有。remove操做包
      括,确认列表非空,查找要删除的元素,而后处理如下4种状况之一:要删除的元素是列
      表中的惟一元素,要删除的元素是列表中的泞元素,要删除的元素是列表中末尾元素,或
      者要删除的元素处于列表当中位置。在全部这些状况下,count都将递减1。与数组实现的
      remove操做不一样,链表实现的remove操做不须要平移元素来填补空隙。

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

  • 问题1:modcount是什么
  • 问题1解决方案:看了下第七章,课本的解释是:modCount是一个整数变量,在外部类ArrayList中定义的。若是回顾一下第6章,就会明白,一旦集合被修改(好比往集合中添加了元素),modCount就会增长。所以,当创一个新迭代器时,其修改计数就设置为等于集合本身的计数。若是两个值不一致了(因为集合进行了更新),那么迭代器将抛出ConcurrentModificationException异常。

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

  • 问题1:代码报错,可是从头翻到尾没看见错误
  • 问题1解决方案:使用f2查找了一下,发现是注释报错了,在网上查了一下,貌似idea会出现这个错误,重启了一下就没了

上周考试错题总结

  • 错题1及缘由,理解状况
    A pop operation on a Stack returns a(n)
    A .node
    B .element
    C .variable
    D .pointer

选B,返回一个元素idea

  • 错题2及缘由,理解状况
    Which of the following is the correct way to instantiate an array of 10 generic objects?
    A .Which of the following is the correct way to instantiate an array of 10 generic objects?
    B .T[10] x = new T[]
    C .T[] x = (T[])(new object[10])
    D .None of the above

选C,泛型数组的声明方式有点不一样.net

  • 错题3及缘由,理解状况
    The variable top in the array implementation of a Stack refers to
    A .The next available position in the array
    B .The item at the top of the Stack
    C .The number of items in the stack
    D .A and C
    E .None of the above

选D,那时候以为不是a就是c,没想到两个都是设计

  • 错题4及缘由,理解状况
    A well-defined interface masks the implementation of the collection.
    A .true
    B .false

选A,定义良好的接口能够帮助集合更好的实现

代码托管

点评过的同窗博客和代码

  • 本周结对学习状况
    • 20172312
    • 结对学习内容
      • 课本第六章

学习进度条

代码行数(新增/累积) 博客量(新增/累积) 学习时间(新增/累积) 重要成长
目标 5000行 30篇 400小时
第一周 0/0 1/1 8/8
第二周 500/500 1/2 15/ 23
第三周 802/1302 1/3 12/35
第四周 1530/2832 2/5 15/50

参考资料

相关文章
相关标签/搜索