1. 本周学习总结

2. 书面作业

Q1 ArrayList代码分析

1.1 解释ArrayList的contains源代码
ArrayList的contains源代码

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

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

ArrayList中的方法中参数的类型都是Object类,Object类又是所有类的父类,所以不需要考虑元素的类型。

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

贴上标签

ensureCapacityInternal会判断是否要扩容。

1.5 分析private voidrangeCheck(intindex)源代码,为什么该方法应该声明为private而不声明为public?

避免被外界访问,当调用了rangeCheck(int index)时,就会在数组越界时发出提醒,而且这是一种内部方法没必要声明成Public。

HashSet原理

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

  • 当从HashSet中访问元素时,HashSet先计算该元素的hashCode值,然后到该hashCode对应的位置取出该元素。
  • 要调用equals和hashCode方法

  • 2.2 选做:尝试分析HashSet源代码后,重新解释1.1

    使用HashSet中的contain方法那和List中的contain方法的速度简直不可同日而语,

        public boolean contains(Object o) {
    return map.containsKey(o);
    }

List中是遍历而HashSet是利用hashCode快速查找到并利用equals进行比较,当比较值为真则覆盖原来的值若是假则插入到hash桶中。

ArrayListIntegerStack

Q3 ArrayListIntegerStack

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

  • ArrayListIntegerStack是用ArrayList来实现栈,ArrayIntegerStack是用Integer数组来实现栈。
  • ArrayIntegerStack容量有限会出现栈满的情况,ArrayListIntegerStack不存在栈满的情况。
  • ArrayIntegerStack需要定义一个Top来入栈出栈,而ArrayListIntegerStack则不需要,直接用里面已有的方法就能实现入栈出栈。

3.2 简单描述接口的好处.

ArrayIntegerStack,,ArrayListIntegerStack都实现了IntegerStack接口。

Stack and Queue

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

public class Main201521123116 {
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
String a=sc.next();
System.out.println(isHuiWen(a));
}

public static boolean isHuiWen(String text){
ArrayListIntegerStack stack=new ArrayListIntegerStack();
/
*
*ArrayListIntegerStack为本周实验5-1中定义过的栈
*/

char []b=text.toCharArray();
int length=b.length ;
for(int i=0;i<length/2;i++)
{
if(b[i]!=b[length-i-1]){
return false;
}
return true;
}
}

4.2 题集jmu-Java-05-集合之5-6 银行业务队列简单模拟。(不要出现大段代码)

建立两个队列A和B,将放在数组里的数字根据奇数偶数分别加入到队列A与B中,再根据题意输出

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

5.1 实验总结

 Set<String> str = new TreeSet<String>();
Scanner sc = new Scanner(System.in);
while (sc.hasNext()) {
String s = sc.next();
if (!s.equals("!!!!!"))
str.add(s);
else
break;
}
System.out.println(str.size());
for (int i = 0; i < 10; i++) {
System.out.println(str.toArray()[i]);
}

使用 TreeSet,它具有自动排序功能。题目只要求10个单词 所以最好要加上str.toArray()[i];PTA提交正确。

3. 码云上代码提交记录及PTA实验总结

3.2 PTA实验

编程(5-1, 5-2, 5-3(选做), 5-6)
实验总结已经在作业中体现,不用写。

学号:201521123116 《java程序设计》第七周学习总结的更多相关文章

  1. 201521123027 <java程序设计>第七周学习总结

    1.本周学习总结 2.书面作业 Q1.ArrayList代码分析 1.1 解释ArrayList的contains源代码 答: 源代码: //contains()方法 public boolean c ...

  2. 学号 20175212 《Java程序设计》第九周学习总结

    学号 20175212 <Java程序设计>第九周学习总结 教材学习内容总结 一.MySQL数据库管理系统 1.在官网上下载并安装MySQL 2.在IDEA中输入测试代码Connectio ...

  3. 学号20145303 《Java程序设计》第一周学习总结

    学号20145303 <Java程序设计>第一周学习总结 教材学习内容总结 *dos命令行: dir:列出当前目录下的文件及文件名 md:创建目录 rd:删除目录.为空时文件夹(文件夹为空 ...

  4. 学号20145322 《Java程序设计》第一周学习总结

    学号20145322 <Java程序设计>第一周学习总结 教材学习内容总结 Java诞生于Sun公司,于1998年12月4日发布J2SE,约以两年为一周期推出重大版本更新. 2010年Or ...

  5. 201871010106-丁宣元 《面向对象程序设计(java)》第七周学习总结

    201871010106-丁宣元 <面向对象程序设计(java)>第七周学习总结 正文开头: 项目 内容 这个作业属于哪个课程 https://home.cnblogs.com/u/nwn ...

  6. 20175227张雪莹 2018-2019-2 《Java程序设计》第九周学习总结

    20175227张雪莹 2018-2019-2 <Java程序设计>第九周学习总结 教材学习内容总结 第十一章 JDBC数据库操作 MySQL数据库管理系统 下载安装MySQL 若下载的是 ...

  7. 20155227 2016-2017-2 《Java程序设计》第九周学习总结

    20155227 2016-2017-2 <Java程序设计>第九周学习总结 教材学习内容总结 JDBC简介 JDBC全名Java DataBase Connectivity,是java联 ...

  8. 20155305乔磊2016-2017-2《Java程序设计》第九周学习总结

    20155305 2016-2017-2 <Java程序设计>第九周学习总结 教材学习内容总结 JDBC入门 JDBC简介 1.JDBC是java联机数据库的标准规范,它定义了一组标准类与 ...

  9. 20165324 《Java程序设计》第九周学习总结

    学号 20165324 <Java程序设计>第九周学习总结 教材学习内容总结 第十三章 Java网络编程 URL类 使用URL创建对象的应用程序称为客户端 一个URL对象封装一个具体资源的 ...

  10. 20145213《Java程序设计》第九周学习总结

    20145213<Java程序设计>第九周学习总结 教材学习总结 "五一"假期过得太快,就像龙卷风.没有一点点防备,就与Java博客撞个满怀.在这个普天同庆的节日里,根 ...

随机推荐

  1. 前端到后台ThinkPHP开发整站(2)

    我这次使用的ThinkPHP版本是:3.2.3版本,还有会使用到一个弹出层插件,叫 layer,官网地址是:http://layer.layui.com/.废话不多说,进入撸码环节. 1.通用方法编写 ...

  2. C++生成dump文件

    C++代码中,使用DbgHelp模块的MINIDUMP编程生成 #include "DbgHelp.h" typedef BOOL (WINAPI* MINIDUMPWRITEDU ...

  3. Android App 压力测试 monkeyrunner

    Android App 压力测试 第一部分 背景 1. 为什么要开展压力测试? 2. 什么时候开展压力测试?第二部分 理论 1. 手工测试场景 2. 自动测试创建 3. Monkey工具 4. ADB ...

  4. Fiddler简介

    官网:http://www.telerik.com/fiddler Fiddler是一个http协议调试代理工具,它能够记录并检查所有你的电脑和互联网之间的HTTP通讯,设置断点,查看所有的" ...

  5. HAOI2015 树上操作

    HAOI2015 树上操作 题目描述 有一棵点数为 N 的树,以点 1 为根,且树点有边权.然后有 M 个操作,分为三种:操作 1 :把某个节点 x 的点权增加 a .操作 2 :把某个节点 x 为根 ...

  6. phpStudy下安装memcache扩展

    简要:参考<phpStydy配置memcache扩展>,期间安装不到memcache;为此向大家分享我遇到的问题和解决办法,希望能够跟各位PHP大神学习探索,如果有不对或者好的建议告知下: ...

  7. DataSet 转 List

    public class OrderInfo { public OrderResult GetOrderInfoByOrderNum(List<string> orderNumList) ...

  8. Zepto源码分析(二)奇淫技巧总结

    Zepto源码分析(一)核心代码分析 Zepto源码分析(二)奇淫技巧总结 目录 * 前言 * 短路操作符 * 参数重载(参数个数重载) * 参数重载(参数类型重载) * CSS操作 * 获取属性值的 ...

  9. Myeclipse详细使用教程

    Myeclipse详细使用教程.. /*+Shift+Enter(生成多行注释) /**+Shift+Enter(生成文档注释)-----------------问题:在编辑jsp的时候,如果光标移动 ...

  10. 程序员的自我修养五Windows PE/COFF

    5.1 Windows的二进制文件格式PE/COFF PE文件格式事实上与ELF同根同源,它们都是由COFF格式发展而来. 5.2 PE前身——COFF 在win下,Command Prompt fo ...