201521123098 《Java程序设计》第7周学习总结
1. 本周学习总结
以你喜欢的方式(思维导图或其他)归纳总结集合相关内容。
2. 书面作业
1. ArrayList代码分析
1.1 解释ArrayList的
contains
源代码
该方法调用了indexOf(Object o)方法;
而indexOf(Object o)方法对参数o执行的是:
遍历该ArrayList型的容器,若找到与o参数等值的项则返回该项位置,找不到则返回-1;
contain(Object o)方法则是对indexOf(Object o)所返回的值进行判断,若返回值大于等于0则说明存在,由此返回true,若为-1则返回false表不存在。
1.2 解释
E remove(int index)
源代码
该方法先调用rangeCheck(int index)方法,判断该位置是否超出容器范围,若超出则抛出IndexOutOfBoundsException(outOfBoundsMsg(index));
若未超出则保存该位置的数据(旧数据),将该位置之后的数据往前移动,最后一个数据改为null后简短容器长度;
最后返回旧数据。
1.3 结合1.1与1.2,回答ArrayList存储数据时需要考虑元素的类型吗?
所有数据都存在该数组里,该数组被定义为Object[]型,说明所有类型都能用。
1.4 分析add源代码,回答当内部数组容量不够时,怎么办?
当容量不够时将数组的容量单元+1来储存添加的数据。
1.5 分析
private void rangeCheck(int index)
源代码,为什么该方法应该声明为private而不声明为public?
因为在进行各个方法的调用时需要该方法时就会自动被调用,开发者不需要自己手动进行判断是否越界。
如 1.4题中的add()方法。
2. HashSet原理
2.1 将元素加入HashSet(散列集)中,其存储位置如何确定?需要调用那些方法?
若要确定位置,则就在HashMap中找到它的hashCode,若hashCode没有被重写则都为10并返回10;
若被重写了就返回重写后定义的值;
这个返回的值就是hash表的位置,储存到该位置就可以了。
2.2 选做:尝试分析HashSet源代码后,重新解释1.1
调用HashMap中map的containsKey(Object key)方法,该方法又调用了getEntry(Object key)方法,返回的是key在哈希表中的位置;
containsKey(Object key)方法将返回的值进行判断,若不为null则返回1,若为null则返回0;
这个返回的值也就是HashSet的contains(Object key)方法的返回值。
3. 题集jmu-Java-05-集合
之5-1 ArrayListIntegerStack
3.1 比较写的ArrayListIntegerStack与自己在题集
jmu-Java-04-面向对象2-进阶-多态、接口与内部类
中的题目5-3自定义接口ArrayIntegerStack,有什么不同?(不要出现大段代码)下面以两个实验中对push方法的定义为例子来说明两者的不同。
3.2 简单描述接口的好处.
接口可以对实现类所需要的方法进行统一声明;
实现类对接口的实现就是对其声明方法的重写。
3.3 实验总结
当用ArrayList型来储存栈的数据时就应该学会合理调用ArrayList自带的一些方法来提高工作效率,如:
push方法可以调用ArrayList的add方法;
empty方法可以直接返回ArrayList的isEmpty方法的返回值;
pop方法可以调用ArrayList的remove方法。
4. Stack and Queue
4.1 编写函数判断一个给定字符串是否是回文,一定要使用栈,但不能使用java的Stack类(具体原因自己搜索)。请粘贴你的代码,类名为
Main你的学号
。
4.2 题集
jmu-Java-05-集合之5-6
银行业务队列简单模拟。(不要出现大段代码)
5. 题集jmu-Java-05-集合之5-2
统计文字中的单词数量并按单词的字母顺序排序后输出 (不要出现大段代码)
实验总结
要学会使用TreeSet的自动排序功能来减少自己的工作量。
6. 选做:加分考察-题集jmu-Java-05-集合之5-3
统计文字中的单词数量并按出现次数排序(不要出现大段代码)
- 6.1 伪代码
- 6.2 实验总结
7. 面向对象设计大作业-改进
打开软件:
点击登录:
输入用户密码:
点击显示购物车:
注销 重复登录过程 这次登陆agt账户 :
购物车排序:
注销 并尝试暴力破解某用户密码 :
等待设定的freezeTime(aka 60seconds here)重新显示登陆框:
3. 码云上代码提交记录及PTA实验总结
题目集:jmu-Java-05-集合
3.1. 码云代码提交记录
在码云的项目中,依次选择“统计-Commits历史-设置时间段”, 然后搜索并截图
3.2. PTA实验
编程(5-1, 5-2, 5-3(选做), 5-6)
3.3. 实验总结已经在作业中体现,不用写。
201521123098 《Java程序设计》第7周学习总结的更多相关文章
- 20145213《Java程序设计》第九周学习总结
20145213<Java程序设计>第九周学习总结 教材学习总结 "五一"假期过得太快,就像龙卷风.没有一点点防备,就与Java博客撞个满怀.在这个普天同庆的节日里,根 ...
- 20145213《Java程序设计》第二周学习总结
20145213<Java程序设计>第二周学习总结 教材学习内容总结 本周娄老师给的任务是学习教材的第三章--基础语法.其实我觉得还蛮轻松的,因为在翻开厚重的书本,一股熟悉的气息扑面而来, ...
- 20145213《Java程序设计》第一周学习总结
20145213<Java程序设计>第一周学习总结 教材学习内容总结 期待了一个寒假,终于见识到了神秘的娄老师和他的Java课.虽说算不上金风玉露一相逢,没有胜却人间无数也是情理之中,但娄 ...
- 21045308刘昊阳 《Java程序设计》第九周学习总结
21045308刘昊阳 <Java程序设计>第九周学习总结 教材学习内容总结 第16章 整合数据库 16.1 JDBC入门 16.1.1 JDBC简介 数据库本身是个独立运行的应用程序 撰 ...
- 20145330孙文馨 《Java程序设计》第一周学习总结
20145330孙文馨 <Java程序设计>第一周学习总结 教材学习内容总结 刚开始拿到这么厚一本书说没有压力是不可能的,开始从头看觉得很陌生进入不了状态,就稍微会有一点焦虑的感觉.于是就 ...
- 20145337 《Java程序设计》第九周学习总结
20145337 <Java程序设计>第九周学习总结 教材学习内容总结 数据库本身是个独立运行的应用程序 撰写应用程序是利用通信协议对数据库进行指令交换,以进行数据的增删查找 JDBC可以 ...
- 20145337 《Java程序设计》第二周学习总结
20145337 <Java程序设计>第二周学习总结 教材学习内容总结 Java可分基本类型与类类型: 基本类型分整数(short.int.long).字节(byte).浮点数(float ...
- 20145218《Java程序设计》第一周学习总结
20145218 <Java程序设计>第一周学习总结 教材学习内容总结 今天下午看了Java学习的视频,感觉很是新奇,之前觉得Java学起来是艰难枯燥的,但通过第一章的学习觉得如果自己可以 ...
- 《Java程序设计》第九周学习总结
20145224 <Java程序设计>第九周学习总结 第十六章 整合数据库 JDBC入门 ·数据库本身是个独立运行的应用程序 ·撰写应用程序是利用通信协议对数据库进行指令交换,以进行数据的 ...
- 《Java程序设计》第二周学习总结
20145224陈颢文<Java程序设计>第二周学习总结 教材学习内容总结 一.类型.变量与运算符 1.类型 整数: 可细分为为short整数(占2字节),int整数(占4字节),long ...
随机推荐
- 最短路和次短路问题,dijkstra算法
/* *题目大意: *在一个有向图中,求从s到t两个点之间的最短路和比最短路长1的次短路的条数之和; * *算法思想: *用A*求第K短路,目测会超时,直接在dijkstra算法上求次短路; ...
- 【每天一道算法题】Lucky String
A string s is LUCKY if and only if the number of different characters in s is a fibonacci number. Gi ...
- RobotFramework自动化测试框架-移动手机自动化测试AppiumLibrary库其它的常见自动化关键字
关键字 使用描述 Close Application 关闭掉当前已经打开的APP Application,该关键字不需要接收任何的参数,但是使用该关键字的前提是已经打开了一个APP Applicati ...
- JackSon将java对象转换为JSON字符串
JackSon可以将java对象转换为JSON字符串,步骤如下: 1.导入JackSon 的jar包 2.创建ObjectMapper对象 3.使用ObjectMapper对象的writeValueA ...
- MarkdownPad2的密钥
MarkdownPad2的密钥 经本人试用 邮箱: Soar360@live.com 授权秘钥: GBPduHjWfJU1mZqcPM3BikjYKF6xKhlKIys3i1MU2eJHqWGImDH ...
- MySQL的常用SQL语句.md
修改密码 这是常见的大家一般都要用的 首先 安装成功了打开cmd --> mysql -u root -p -->输入你的密码 修改mysql root用户密码 格式 ...
- java版飞机大战 实战项目详细步骤.md
[toc] 分析 飞机大战 首先对这个游戏分析,在屏幕上的物体都是飞行物,我们可以把建一个类,让其他飞行物继承这个类.游戏中应有英雄机(也就是自己控制的飞机).敌人.而敌人应该分为打死给分的飞机(就是 ...
- Powerdesigner 连接mysql 在指定的DSN中,驱动程序和应用程序之间的体系结构不匹配 SQLSTATE = IM014
系统环境: WIN7 64位系统, 用Powerdesigner 连接MySQL 逆向工程时 报错 "在指定的DSN中,驱动程序和应用程序之间的体系结构不匹配 SQLSTATE = IM01 ...
- wmic 获得系统硬件信息
wmic扩展了wmi系统管理指令,提供了命令行接口和批处理执行系统管理的工具.通过别名机制将命令转为对wmi命名空间的操作 1.获得cpu信息 2.获得cpu 核数 3.获得内存条信息
- 【Hadoop】HDFS的java客户端编写
项目使用了Maven Project 快速进行HDFS 客户端程序测试 客户端操作系统:win10 64位 JDK: 1.7.0_79 开发工具 :Eclipse Luna pom.xml < ...