1. 本周学习总结

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

2. 书面作业

1. ArrayList代码分析

1.1 解释ArrayListcontains源代码

indexOf中对对象进行比较,如果相同返回1,不同返回-1.然后contains调用indexOf,如果相同返回true,不同返回false。
1.2 解释E remove(int index)源代码

将index位置上的元素进行删除后,并返回原来位置上元素的值
1.3 结合1.1与1.2,回答ArrayList存储数据时需要考虑元素的具体类型吗?

  • 需要考虑元素的具体类型
  • 比如1.2中假如储存的是int型的数据,有时候remove(i)的时候就可能出错

    这里对传入的值有一个元素的删除

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

add中先对数组长度加1,再做添加的操作
1.5 分析private void rangeCheck(int index)源代码,为什么该方法应该声明为private而不声明为public?


这个函数是为了检查是否越界,只要自己使用就可以了

2. HashSet原理

2.1 将元素加入HashSet(散列集)中,其存储位置如何确定?需要调用那些方法?
Hash会调用hashCode()方法获得一个值,然后根据这个值获得存储位置。
2.2 将元素加入HashSet中的时间复杂度是多少?是O(n)吗?(n为HashSet中已有元素个数)
感觉是O(n),因为对之前的值判断比较n次。
2.3 选做:尝试分析HashSet源代码后,重新解释2.1

3. ArrayListIntegerStack

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

ArrayListinttegerStack:

  • 一个使用数组,一个用ArrayList。数组限制了它的大小,而ArrayList是动态的,add方法中可以扩大它的容量
    3.2 结合该题简单描述接口的好处,需以3.1为例详细说明,不可泛泛而谈。
  • 去实现接口的方法是多样的,像ArrayListtegerstack和ArrayintegerStack虽然用的方法不一样,可是结果实现的功能也是同样的

    4. Stack and Queue

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

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


采用ArrayDeque实现类

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

题集jmu-Java-05-集合之5-2 统计文字中的单词数量并按单词的字母顺序排序后输出 (作业中不要出现大段代码)
5.1 实验总结
可以用TreeSet去做它的排序,但是一开始我放错了感叹号个数然后就一直出错,并且没有把!!!!!也算进去

6. 选做:统计文字中的单词数量并按出现次数排序

题集jmu-Java-05-集合之5-3 统计文字中的单词数量并按出现次数排序(不要出现大段代码)
6.1 伪代码
6.2 实验总结

7. 选做 面向对象设计大作业-改进

7.1 使用集合类改进大作业或者简述你的面向对象设计大作业中,哪里使用到了集合类。
7.2 进一步完善图形界面(仅需出现改进的后的图形界面截图)
参考资料:

JTable参考项目

3.码云及PTA

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

3.1. 码云代码提交记录

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

3.2 截图PTA题集完成情况图

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

3.3 统计本周完成的代码量

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

周次 总代码量 新增代码量 总文件数 新增文件数
1 0 0 0 0
2 265 265 9 9
3 326 61 8 -1
4 0 0 0 0
5 187 187 6 -2
6 209 22 6 0
7 174 -35 4 -2
8 192 22 4 0
9 201 9 5 1

选做:4. 使用Java解决实际问题

尝试为代码统计项目 增加图形界面。
3.1 设计图形界面(可用纸画)。
3.2 从该git项目fork一个分支,在该分支上进行你的开发,以后如果开发的好,可以尝试向开发者提出pull request。注意:规划好包名。

201621123075 week8-集合的更多相关文章

  1. java基础集合经典训练题

    第一题:要求产生10个随机的字符串,每一个字符串互相不重复,每一个字符串中组成的字符(a-zA-Z0-9)也不相同,每个字符串长度为10; 分析:*1.看到这个题目,或许你脑海中会想到很多方法,比如判 ...

  2. .Net多线程编程—并发集合

    并发集合 1 为什么使用并发集合? 原因主要有以下几点: System.Collections和System.Collections.Generic名称空间中所提供的经典列表.集合和数组都不是线程安全 ...

  3. 一起学 Java(三) 集合框架、数据结构、泛型

    一.Java 集合框架 集合框架是一个用来代表和操纵集合的统一架构.所有的集合框架都包含如下内容: 接口:是代表集合的抽象数据类型.接口允许集合独立操纵其代表的细节.在面向对象的语言,接口通常形成一个 ...

  4. 编写高质量代码:改善Java程序的151个建议(第5章:数组和集合___建议75~78)

    建议75:集合中的元素必须做到compareTo和equals同步 实现了Comparable接口的元素就可以排序,compareTo方法是Comparable接口要求必须实现的,它与equals方法 ...

  5. java基础_集合List与Set接口

    List接口继承了Collection的方法  当然也有自己特有的方法向指定位置添加元素   add(索引,添加的元素); 移除指定索引的元素   remove(索引) 修改指定索引的元素   set ...

  6. Java基础Collection集合

    1.Collection是所有集合的父类,在JDK1.5之后又加入了Iterable超级类(可以不用了解) 2.学习集合从Collection开始,所有集合都继承了他的方法 集合结构如图:

  7. 轻量级“集合”迭代器-Generator

    Generator是PHP 5.5加入的新语言特性.但是,它似乎并没有被很多PHP开发者广泛采用.因此,在我们了解PHP 7对Generator的改进之前,我们先通过一个简单却显而易见的例子来了解下G ...

  8. Asp.net MVC 传递数据 从前台到后台,包括单个对象,多个对象,集合

    今天为大家分享下 Asp.net MVC 将数据从前台传递到后台的几种方式. 环境:VS2013,MVC5.0框架 1.基本数据类型 我们常见有传递 int, string, bool, double ...

  9. 这些.NET开源项目你知道吗?.NET平台开源文档与报表处理组件集合(三)

    在前2篇文章这些.NET开源项目你知道吗?让.NET开源来得更加猛烈些吧 和这些.NET开源项目你知道吗?让.NET开源来得更加猛烈些吧!(第二辑)中,大伙热情高涨.再次拿出自己的私货,在.NET平台 ...

  10. python 数据类型 --- 集合

    1. 注意列表和集合的区别 set 列表表现形式: list_1 = [1,3,4];  集合表现形式:set_1= set() list_1 = [1,2,3,4,23,4,2] print(lis ...

随机推荐

  1. Python openpyxl、pandas操作Excel方法简介与具体实例

    本篇重点讲解windows系统下 Python3.5中第三方excel操作库-openpyxl: 其实Python第三方库有很多可以操作Excel,如:xlrd,xlwt,xlwings甚至注明的数据 ...

  2. vue 之iview

    iView-admin2.0:https://admin.iviewui.com/ 组件:https://www.iviewui.com/docs/guide/install

  3. linux----------linux的scp命令介绍

    1.scp是有Security的文件copy,基于ssh登录. 命令基本格式: scp [OPTIONS] file_source file_target OPTIONS: -v 和大多数 linux ...

  4. CentOS 7 配置Tomcat9连接MySQL

    配置Tomcat 首先安装Tomcat 安装Tomcat分为安装Tomcat和安装JDK两个步骤 JDK( Java Development Kit ) 是Sun Microsystems针对Java ...

  5. php .htaccess 伪静态

    # #以下是网站伪静态正则 # RewriteEngine On RewriteRule ^index.html$ index.php RewriteRule ^about.html$ about.p ...

  6. spring boot + vue + element-ui全栈开发入门——主页面开发

    目的 开发一个后台管理的前端,顶部是标题,左侧是菜单导航栏,中间是要显示的内容.而内容可以是各种图表,也可以是数据列表. 一.准备工作 1..修改App.vue文件 代码如下: <templat ...

  7. Web_Toy

    1 2 3 4 1.App录音 var r = plus.audio.getRecorder() # 创建录音对象 r.record({filename:"_doc/audio/" ...

  8. 腾讯云主机如何使用root账号登录,不能使用root登录怎么办

    1.先用ubuntu账号登录,执行sudo passwd root 2.按要求输入密码,请牢记. 3.执行sudo vi /etc/ssh/sshd_config 4.找到PermitRootLogi ...

  9. 关于mysql触发器和存储过程的理解

    内容源自:一篇很棒的 MySQL 触发器学习教程 一.触发器概念 触发器(trigger):监视某种情况,并触发某种操作,它是提供给程序员和数据分析员来保证数据完整性的一种方法,它是与表事件相关的特殊 ...

  10. Got error -1 when reading table

    环境:Percona Server for MySQL 5.5.18 模拟三个Terminal,实现当引用锁定表的查询被杀死时,错误日志中出现的Got error -1 when reading ta ...