一.本周学习总结

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

二.书面作业

1. List中指定元素的删除(题集题目)

  • 1.1 实验总结。并回答:列举至少2种在List中删除元素的方法。

    • 本题中要求以空格(单个或多个)为分隔符,将line中的元素抽取出来,放入一个List,实现的方法有两种:

      • 利用扫描器按行扫描,取出每行后再利用扫描器进行扫描,如下while(scanner.hasNext())
      • 使用正则表达式,如下String[] word=in.nextLine().split(" +");
    • 在List中删除元素:

      • for循环列表,如for(int i=0;i<list.size();i++),list.get(i).equals("XXX")进行判断再用list.remove(i)删除
      • foreach循环列表,如for(String e:list),用e.equals("XXX")进行判断再用list.remove(e)删除

2. 统计文字中的单词数量并按出现次数排序(题集题目)

  • 2.1 伪代码(不得复制代码,否则扣分

    1. 1.创建TreeMap
    2. 2.依次取入单词,判断是否为map中的key,是则对应value值加1,否则将其放入mapvalue赋为1
    3. 3.运行步骤2直到遇到"!!!!!"退出
    4. 4.map转为list并按要求进行排序
    5. 5.将排序后的map按要求输出
  • 2.2 实验总结

    刚开始做这题因为不知道如何对map进行按要求排序(只知道map会进行自然排序),所以准备用数组来完成,写完发现虽然能够按要求输出,但是因为定义的数组过大在PTA上会提示大文件按常规方法大概需要1600ms左右;对map进行自定义排序可借助ArrayList的Collection.sort来完成。

3. 倒排索引(题集题目)

  • 3.1 截图你的代码运行结果

  • 3.2 伪代码(不得复制代码,否则扣分

    1. 1.创建TreeMap,设置key类型为Stringvalue类型为List(为了存入多个对应的值)
    2. 2.按行读入并标记行号,依次取入单词,判断是否为map中的key,是则将行号加入到对应的value列表中,否则将其放入map且新建value列表存放行号
    3. 3.输出map
    4. 4.将输入的一行读入,按空格分开并存入数组
    5. 5.新建List,循环步骤4得到的数组,依次在map中查找数组中的单词对应的value并存入另一个新建的List,如果第二个List不为空就将其与第一个List合并,否则退出循环
    6. 6.创建HashMap用来存放各行号出现的个数,key为行号,value为次数
    7. 7.循环步骤6中的HashMap,找出value与步骤4中数组长度相同的key并存入新建的List
    8. 8.步骤7中新建的List中的数据即为要求的存在查找单词的行号,对其进行排序
    9. 9.按要求输出步骤8中排过序的List中的值的对应行即可
  • 3.3 实验总结

    看到题目的第一想法是一个key对应多个value,查到IdentityHashMap好像可以实现,但运行才发现他只是能同时存在多个value而不是我所想要的value全在一个容器里,经同学介绍后才知道可以定义value类型为List;在新建List时以List<Integer> a;方式新建在运行时会报错NullPointerException,改为List<Integer> a = new ArrayList<Integer>()即可解决。

    有一点不太明白,为什么我的代码在自己电脑上可以正确运行(运行老师的后台数据也依然是正确的,格式也都一模一样),但是PTA上提交却一直报错。

4.Stream与Lambda

编写一个Student类,属性为:

  1. private Long id;
  2. private String name;
  3. private int age;
  4. private Gender gender;//枚举类型
  5. private boolean joinsACM; //是否参加过ACM比赛

创建一集合对象,如List< Student>,内有若干Student对象用于后面的测试。

  • 4.1 使用传统方法编写一个搜索方法

    List<Student> search(List<Student> stuList, Long id, String name, int age, Gender gender, boolean joinsACM),然后调用该方法将id>某个值,name为某个值, age>某个值, gender为某个值,参加过ACM比赛的学生筛选出来,放入新的集合。在main中调用,然后输出结果。(截图:出现学号、姓名)

  • 4.2 使用java8中的stream(), filter(), collect()编写功能同4.1的代码,并测试(要出现测试数据)。构建测试集合的时候,除了正常的Student对象,再往集合中添加一些null,你编写的方法应该能处理这些null而不是抛出异常。(截图:出现学号)

5. 泛型类:GeneralStack

  • 5.1 GeneralStack接口的代码

  • 5.2 结合本题与以前作业中的ArrayListIntegerStack相比,说明泛型有什么好处

    ArrayListIntegerStack中定义的都是Integer型,所以只能存放Integer型对象,本题中使用了泛型,就可以不用考虑将要存放对象的类型而可以存放任意类型对象。

三.码云及PTA

  • 3.1. 码云代码提交记录

  • 3.2 截图PTA题集完成情况图

  • 3.3 统计本周完成的代码量

周次 总代码量 新增代码量 总文件数 新增文件数
1 193 193 6 6
2 625 432 35 29
3 1076 451 41 6
4 1472 396 47 6
5 1932 460 53 6
6 2235 303 57 4
7 2651 416 62 5
8 2895 244 67 5
9 3275 380 73 6

四.评估自己对Java的理解程度

维度 程度
语法 PTA的题目大部分都能解决,稍难的要多花点时间
面向对象设计能力 基本能按要求使用面向对象思想为所要解决的问题建模
应用能力 可以使用Java编写一些简单的小工具
至今为止代码行数 3275

201621123023《Java程序设计》第9周学习总结的更多相关文章

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

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

  2. 20145213《Java程序设计》第二周学习总结

    20145213<Java程序设计>第二周学习总结 教材学习内容总结 本周娄老师给的任务是学习教材的第三章--基础语法.其实我觉得还蛮轻松的,因为在翻开厚重的书本,一股熟悉的气息扑面而来, ...

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

    20145213<Java程序设计>第一周学习总结 教材学习内容总结 期待了一个寒假,终于见识到了神秘的娄老师和他的Java课.虽说算不上金风玉露一相逢,没有胜却人间无数也是情理之中,但娄 ...

  4. 21045308刘昊阳 《Java程序设计》第九周学习总结

    21045308刘昊阳 <Java程序设计>第九周学习总结 教材学习内容总结 第16章 整合数据库 16.1 JDBC入门 16.1.1 JDBC简介 数据库本身是个独立运行的应用程序 撰 ...

  5. 20145330孙文馨 《Java程序设计》第一周学习总结

    20145330孙文馨 <Java程序设计>第一周学习总结 教材学习内容总结 刚开始拿到这么厚一本书说没有压力是不可能的,开始从头看觉得很陌生进入不了状态,就稍微会有一点焦虑的感觉.于是就 ...

  6. 20145337 《Java程序设计》第九周学习总结

    20145337 <Java程序设计>第九周学习总结 教材学习内容总结 数据库本身是个独立运行的应用程序 撰写应用程序是利用通信协议对数据库进行指令交换,以进行数据的增删查找 JDBC可以 ...

  7. 20145337 《Java程序设计》第二周学习总结

    20145337 <Java程序设计>第二周学习总结 教材学习内容总结 Java可分基本类型与类类型: 基本类型分整数(short.int.long).字节(byte).浮点数(float ...

  8. 20145218《Java程序设计》第一周学习总结

    20145218 <Java程序设计>第一周学习总结 教材学习内容总结 今天下午看了Java学习的视频,感觉很是新奇,之前觉得Java学起来是艰难枯燥的,但通过第一章的学习觉得如果自己可以 ...

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

    20145224 <Java程序设计>第九周学习总结 第十六章 整合数据库 JDBC入门 ·数据库本身是个独立运行的应用程序 ·撰写应用程序是利用通信协议对数据库进行指令交换,以进行数据的 ...

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

    20145224陈颢文<Java程序设计>第二周学习总结 教材学习内容总结 一.类型.变量与运算符 1.类型 整数: 可细分为为short整数(占2字节),int整数(占4字节),long ...

随机推荐

  1. selenium webdriver——JS操作日历控件

    一般的日期控件都是input标签下弹出来的,如果使用webdriver 去设置日期, 1. 定位到该input 2. 使用sendKeys 方法 比如 但是,有的日期控件是readonly的 比如12 ...

  2. react之echarts数据更新

    react之echarts数据更新 在使用setState更新数据时,如果要将图标更新,需要做一些简单的封装,代码如下: import React, { Component } from 'react ...

  3. 一劳永逸解决VLC播放中文字幕乱码问题

    VLC对于Mac/Ubuntu用户来说算得上是必备软件.其相当于PC机上的“暴风影音”,但Mac/Ubuntu的新手使用VLC播放avi时都会碰 到字幕乱码的问题.avi字幕的格式有多种,这里假设你使 ...

  4. 64 位 win7 使用PLSQL Developer(转)

    由于 PLSQL Developer 没有64位版本,所以在64位系统上运行该程链接64位Oracle时就会报错,笔者为这个问题纠结了好几天,后来通过请教Google + 动手实践,终于搞定了这个问题 ...

  5. Linux下patch的制作和应用

    转自:http://blog.chinaunix.net/u3/100239/showart_1984963.html 首先介绍一下diff和patch.在这里不会把man在线文档上所有的选项都介绍一 ...

  6. Golang之面向对象和指针

    武大郎,来十个烧饼... package main import "fmt" type Integer int //为内置的int类型增加了新方法less,面向对象写法 func ...

  7. Pwdump v7.1

    提取windows系统密码  和 hash值

  8. oracle 建立表空间和用户

    .建立表空间, create tablespace "NETHRA" DATAFILE 'D:\DataBase\Oracle\iClass\iclass\iclass.DBF' ...

  9. Gym 101201H Paint (离散化+DP)

    题意:给定 n 个区间,让你选出一些,使得每个选出区间不交叉,并且覆盖区间最大. 析:最容易想到的先是离散化,然后最先想到的就是 O(n^2)的复杂度,dp[i] = max(dp[j] + a[i] ...

  10. 看图说说JVM老年代垃圾收集器

    注:G1垃圾收集器是目前最前沿的GC收集器,未来将取代CMS垃圾收集器,可以作为整个Heap的收集器使用,不限于老年代!!!