201621123040《Java程序设计》第八周学习总结
1.本周学习总结

2.书面作业
2.1ArrayList代码分析
2.1.1解释ArrayList的contains源代码
ArrayList.contain()方法通过调用indexOf()来判断元素位置从而确定其是否存在其中;与此同时通过调用equals()方法处理对象不为null的情形

2.1.2解释E remove(int index)源代码
E remove(int index)将表中第index位置元素删除


2.1.3结合1.1与1.2,回答ArrayList存储数据时需要考虑元素的具体类型吗?
- 不用考虑,ArrayList存储的数据为引用类型,并且ArrayList存储数据实际上用的是Object的数组,Object类是所有类的默认父类;如果有实现限制数据类型的话,要按照数据类型进行存储数据


2.1.4分析add源代码,回答当内部数组容量不够时,怎么办?
- add方法首先判断加入的元素是否超过数组容量;若超过,则扩大其数组容量
ensureCapacity(size+1)



2.1.5分析private void rangeCheck(int index)源代码,为什么该方法应该声明为private而不声明为public?
private私有化,内容不被外界任意修改;rangeCheck方法用来判断给定的索引是否越界,外部不必访问

2.2HashSet原理
2.2.1将元素加入HashSet(散列集)中,其存储位置如何确定?需要调用那些方法?
- HashSet类按照哈希算法来存取对象。当向集合中加入一个新对象时,会调用对象的hashCode()方法得到对象的哈希码,然后根据这个哈希码计算出对象在集合中的存储位置;HashSet对象中不能存储相同数据(调用equals()),存储数据是无序的
2.2.2将元素加入HashSet中的时间复杂度是多少?是O(n)吗?(n为HashSet中已有元素个数)
- 将元素加入HashSet中的时间复杂度不是O(n),是O(1);因为HashSet存储的数据是无序,且无需遍历,通过哈希码计算出对象在集合中的存储位置
2.3ArrayListIntegerStack
2.3.1比较自己写的ArrayListIntegerStack与自己在题集jmu-Java-04-面向对象2-进阶-多态、接口与内部类中的题目自定义接口ArrayIntegerStack,有什么不同?(不要出现大段代码)
- 本次ArrayListIntegerStack代码使用
ArrayList<Integer>()存放对象,使用list的list.add()list.remove()list.isEmpty()实现 push、pop、peek、empty方法;上次则定义指针top=-1实现各种方法


2.3.2结合该题简单描述接口的好处,需以3.1为例详细说明,不可泛泛而谈
- 使用
IntegerStack接口,仅需构造一个类实现其接口,进而重写方法即可,使代码更加灵活简洁,也便于修改和维护

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


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

- 通过老师实验课上点拨,使用LinkedList类(按格式输出,不能顺手直接使用
System.out.println())

2.5统计文字中的单词数量并按单词的字母顺序排序后输出
2.5.1实验总结
- 实现按单词首字母的顺序输出,使用
TreeSet()(互异性,不出现重复单词;并按首字母顺序排序)可实现;遇到"!!!!!" break跳出if()语句,反之添加单词;如何实现输出前10个(按字母顺序)单词,在课上通过老师的点拨--使用foreach并限制其范围(起初想的是用if(word.size()<=10)但苦于无果)

3.码云及PTA
3.1码云代码提交记录

3.2截图PTA题集完成情况图



3.3统计本周完成的代码量
| 周次 | 总代码量 | 新增代码量 | 总文件数 | 新增文件数 | |||||
|---|---|---|---|---|---|---|---|---|---|
| 第一周 | 189 | 189 | 10 | 10 | |||||
| 第二周 | 304 | 304 | 9 | 9 | |||||
| 第三周 | 557 | 557 | 10 | 10 | |||||
| 第四周 | 621 | 621 | 8 | 8 | |||||
| 第五周 | 326 | 326 | 7 | 7 | |||||
| 第六周 | 972 | 972 | 12 | 12 | |||||
| 第七周 | 338 | 338 | 4 | 4 | |||||
| 第八周 | 379 | 379 | 6 | 6 |
201621123040《Java程序设计》第八周学习总结的更多相关文章
- 201521123027 <java程序设计>第八周学习总结
1.本周学习总结 1.1思维导图 2.书面作业 Q1.List中指定元素的删除(题目4-1) 1.1 实验总结 总结:判断List中是否存在指定元素,需要用到equals方法,若存在就用remove进 ...
- 201571030332 扎西平措 《面向对象程序设计Java》第八周学习总结
<面向对象程序设计Java>第八周学习总结 项目 内容 这个作业属于哪个课程 https://www.cnblogs.com/nwnu-daizh/ 这个作业的要求在哪里 https: ...
- 201871010106-丁宣元 《面向对象程序设计(java)》第八周学习总结
201871010106-丁宣元 <面向对象程序设计(java)>第八周学习总结 正文开头: 项目 内容 这个作业属于哪个课程 https://home.cnblogs.com/u/nwn ...
- 20145213《Java程序设计》第九周学习总结
20145213<Java程序设计>第九周学习总结 教材学习总结 "五一"假期过得太快,就像龙卷风.没有一点点防备,就与Java博客撞个满怀.在这个普天同庆的节日里,根 ...
- 21045308刘昊阳 《Java程序设计》第九周学习总结
21045308刘昊阳 <Java程序设计>第九周学习总结 教材学习内容总结 第16章 整合数据库 16.1 JDBC入门 16.1.1 JDBC简介 数据库本身是个独立运行的应用程序 撰 ...
- 20145236 《Java程序设计》第九周学习总结
20145236 <Java程序设计>第九周学习总结 教材学习内容总结 第十六章 整合数据库 JDBC简介 1.JDBC是java联机数据库的标准规范.它定义了一组标准类与接口,标准API ...
- 20155303 2016-2017-2 《Java程序设计》第二周学习总结
20155303 2016-2017-2 <Java程序设计>第二周学习总结 教材学习内容总结 『注意』 "//"为单行批注符: "/*"与&quo ...
- 20145237 《Java程序设计》第九周学习总结
20145237 <Java程序设计>第九周学习总结 教材学习内容总结 第十六章 整合数据库 JDBC入门 ·数据库本身是个独立运行的应用程序 ·撰写应用程序是利用通信协议对数据库进行指令 ...
- 20175209 《Java程序设计》第九周学习总结
20175209 <Java程序设计>第九周学习总结 一.教材知识点总结 有关数据库下载中存在可能出现的问题已经在博客<数据库安装和使用过程中出现的一些问题>给出了相应的解决办 ...
- 20175317 《Java程序设计》第九周学习总结
20175317 <Java程序设计>第九周学习总结 学前准备 首先下载XAMPP,下载完成后打开: 将前两个选项打开 在IDEA中配置驱动mysql-connector-java-5.1 ...
随机推荐
- Codeforces Round #467 (div.2)
Codeforces Round #467 (div.2) 我才不会打这种比赛呢 (其实本来打算打的) 谁叫它推迟到了\(00:05\) 我爱睡觉 题解 A. Olympiad 翻译 给你若干人的成绩 ...
- Oracle删除控制文件恢复
控制文件被删除后,系统崩溃,下面介绍下如何恢复控制文件 SQL> conn / as sysdbaConnected to an idle instance.SQL> startup no ...
- angular路由详解五(辅助路由)
在HTML文件中 //主路由 <router-outlet></router-outlet> //辅助路由 <router-outlet name="aux& ...
- C++对一组pair数据进行排序(sort函数的使用)
最近在写一个算法的时候,把一些数据存在了pair中,并且需要根据pair中first或者second的值对这些数据进行排序.比如:输入数据(1,2).(4,2).(3,3).(2,1)根据first的 ...
- 微信小程序-weui实例代码提取
搜索框 对应代码如下: wxss文件 <view class="page"> <view class="page__hd"> <v ...
- Spring Boot 系列(八)@ControllerAdvice 拦截异常并统一处理
在spring 3.2中,新增了@ControllerAdvice 注解,可以用于定义@ExceptionHandler.@InitBinder.@ModelAttribute,并应用到所有@Requ ...
- linux 目录详解
/bin bin是binary的缩写.这个目录沿袭了UNIX系统的结构,存放着使用者最经常使用的命令.例如cp.ls.cat,等等. /boot 这里存放的是启动Linux时使用的一些核心文件. /d ...
- Java 8 中 ConcurrentHashMap工作原理的要点分析
简介: 本文主要介绍Java8中的并发容器ConcurrentHashMap的工作原理,和其它文章不同的是,本文重点分析了对不同线程的各类并发操作如get,put,remove之间是如何同步的,以及这 ...
- Python爬虫——request实例:爬取网易云音乐华语男歌手top10歌曲
requests是python的一个HTTP客户端库,跟urllib,urllib2类似,但比那两个要简洁的多,至于request库的用法, 推荐一篇不错的博文:https://cuiqingcai. ...
- Maven-02: 依赖
其实一个依赖声明可以包含如下的一些元素: groupId,artifactId,version:依赖的基本坐标. type:依赖的类型,对应于项目坐标定义的packaging.大多数情况下,该元素不必 ...