201621123011 《Java程序设计》第8周学习总结

1. 本周学习总结

2. 书面作业

1. ArrayList代码分析

1.1 解释ArrayList的contains源代码

  • 由源代码可知,ArrayList的contains方法还含有indexOf方法,当输入的对象o为空时,若elementData[i]的值为空则返回下标i,否则返回-1,当对象o不为空时,则比较o与elementData[i]相对应的值,若相同返回下标i,否则返回-1。

1.2 解释E remove(int index)源代码

  • E remove(int index)函数中先用rangeCheck(int index)函数来判断数组是否越界,若数组无越界,则将index对应元素的后面所有元素前移一位,然后将数组长度-1,将最后一个元素的值置为null,最后返回删除的值。

1.3 结合1.1与1.2,回答ArrayList存储数据时需要考虑元素的具体类型吗?

  • 不需要。由1.1与1.2得,数组中存放的类型都是Object类型,它是超级父类。

1.4 分析add源代码,回答当内部数组容量不够时,怎么办?

  • 由源代码可知,当内部数组容量不够时,会自动扩容1.5倍,之后用Arrays.copyof()将原数组中的元素复制到新的数组里。

1.5 分析private void rangeCheck(int index)源代码,为什么该方法应该声明为private而不声明为public?

  • 判断数组是否越界在remove中不需要被用户知道,用户只需要了解remove这个方法如何使用,并不需要了解如何判断数组越界的问题,所以该方法声明为private。

2. HashSet原理

2.1 将元素加入HashSet(散列集)中,其存储位置如何确定?需要调用那些方法?

  • 首先会调用hashCode方法用来计算哈希值,然后通过哈希值计算出对应的储存位置,若位置上无别的值则将值添加到位置上,若位置上已经有值了,则调用equals方法来判断值是否相同,相同则不添加,不相同,则利用冲突解决的方法进行添加操作。

2.2 将元素加入HashSet中的时间复杂度是多少?是O(n)吗?(n为HashSet中已有元素个数)

  • O(1)。因为将元素加入HashSet中只要通过计算哈希值来找到储存位置,不需要遍历。

3. ArrayListIntegerStack

题集jmu-Java-05-集合之ArrayListIntegerStack
3.1 比较自己写的ArrayListIntegerStack与自己在题集jmu-Java-04-面向对象2-进阶-多态、接口与内部类中的题目自定义接口ArrayIntegerStack,有什么不同?(不要出现大段代码)

  • 储存类型不同。自己写的ArrayListIntegerStack使用的是动态数组,而题集中自定义接口ArrayIntegerStack使用的是数组。

3.2 结合该题简单描述接口的好处,需以3.1为例详细说明,不可泛泛而谈。

  • 总的来说接口的好处就是方便灵活。因为这两题都用到了IntegerStack接口,只是其中的方法不一样,那我们要做的就只是写一个实现接口的类,然后直接更改其中的方法就可以了,方便快捷。

4. Stack and Queue

4.1 编写函数判断一个给定字符串是否是回文,一定要使用栈(请利用Java集合中已有的类),但不能使用java的Stack类(具体原因自己搜索)与数组。请粘贴你的代码,类名为Main你的学号。

4.2 题集jmu-Java-05-集合之银行业务队列简单模拟(只粘贴关键代码)。请务必使用Queue接口,并说明你使用了Queue接口的哪一个实现类?

  • 使用了LinkedList实现类

5. 统计文字中的单词数量并按单词的字母顺序排序后输出

题集jmu-Java-05-集合之5-2 统计文字中的单词数量并按单词的字母顺序排序后输出 (作业中不要出现大段代码)
5.1 实验总结

3.码云及PTA

题目集:jmu-Java-05-集合

3.1. 码云代码提交记录

在码云的项目中,依次选择“统计-Commits历史-设置时间段”, 然后搜索并截图

3.2 截图PTA题集完成情况图

需要有两张图(1. 排名图。2.PTA提交列表图)

3.3 统计本周完成的代码量

需要将每周的代码统计情况融合到一张表中。

1 0 0
2 0 0
3 324 324
4 0 0
5 252 252
6 151 151
7 533 533
8 283 283
9 297 297

posted on 2017-11-11 20:06  Eshy  阅读(223)  评论(1编辑  收藏  举报

导航