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

1. 本周学习总结

以你喜欢的方式(思维导图或其他)归纳总结集合相关内容。
1122280-20171111172304013-279796321.png

2. 书面作业

1. ArrayList代码分析

1.1 解释ArrayList的contains源代码

1122280-20171111184316606-366764657.png
contains方法在执行后首先会调用indexOf()方法。indexOf()方法会判断传入的对象是否为空,如果为空,则遍历整个集合的元素,如果集合的某个元素为空,返回该元素的下标。如果传入对象不为空,则遍历整个集合的元素,如果该元素和集合内某个元素的equals比较结构为true,返回该元素下标。

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

1122280-20171111184349388-1599869200.png
1122280-20171111184405153-845540848.png
调用rangeCheck方法判断index是否越界,删除集合中index位置上的元素,并且在删除位置之后的元素向前移动一位,将最后一位为空

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

ArrayList存储数据时不需要考虑元素的具体类型

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

1122280-20171111184458044-690904081.png
内存数组容量不够时,调用ensureExplicitCapacity实现数组的扩容,并将插入元素位置后的剩余元素的下标进行修改

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

1122280-20171111184432841-996356966.png
rangeCheck方法是在remove元素时用于判断是否出现数组越界的情况,只要在本类中调用

2. HashSet原理

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

采用Hash算法决定集合元素的存储位置,发生冲突时,则连接在发生冲突的元素的后面,用链表连接。需要用到hashCode()方法和equals()方法。

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

将元素加入HashSet中的时间复杂度是O(1)

3. ArrayListIntegerStack

题集jmu-Java-05-集合之ArrayListIntegerStack

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

1122280-20171111180023731-954993807.png
1122280-20171111180257731-1883798477.png
存储形式上存在不同,ArrayIntegerStack是数组的方法来存储栈,而ArrayListIntegerStack是用动态数组来进行存储,可以自动改变数组的大小

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

ArrayIntegerStack和ArrayIntegerStack都继承了自定义接口IntegerStack,但使用了不同存储方式,使得代码地使用更加方便

4. Stack and Queue

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

1122280-20171111182041684-1170523789.png

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

1122280-20171111182801778-183775991.png
使用了使用了Queue接口的LinkedList实现类

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

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

5.1 实验总结

实验主要是运用了Set集,用TreeSet来存储数据可以排除重复的元素

3.码云及PTA

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

3.1. 码云代码提交记录

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

3.2 截图PTA题集完成情况图

需要有两张图(1. 排名图。2.PTA提交列表图)
1122280-20171111171103434-1903327325.png
1122280-20171111171020684-442054306.png

3.3 统计本周完成的代码量

需要将每周的代码统计情况融合到一张表中。
1122280-20171111183730481-1049112134.png

周次总代码量新增代码量总文件数新增文件数
925475964713

转载于:https://www.cnblogs.com/jmu201621123083/p/7819448.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值