1. 本周学习总结

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

      1. 泛型的本质:
    1. 他只是一个编译器现象;
    2. 虚拟机里只有普通的类和方法;
    3. 运行时没有类型参数T。
    2. 泛型的优点:
    1. 没有强制类型转换的风险;
    2. 错误在编译阶段就能发现。
    3. 泛型的约束性和局限性:
    1. 不能用基本类型实例化参数类型;
    2. 运行时类型查询只适用于原始类型。
    4. 用泛型写出的接口、类、方法的通用性更强,利于代码的复用;
    5. 使用了泛型以及通配符以后,可以使方法应用于各种满足条件的类型的类上,提高工作效率。

2. 书面作业

1. List中指定元素的删除

题集jmu-Java-05-集合之4-1

  • 1.1 实验总结

      在实验中,Scanner的不止是只有System.in(键盘输入之类的),还可以是一个已赋值变量,如:
    Scanner in=new Scanner(nextLine);
  • 1.2 截图你的提交结果(出现学号)

2. 统计文字中的单词数量并按出现次数排序(尽量不要出现代码)

题集jmu-Java-05-集合之5-3 统计文字中的单词数量并按出现次数排序

  • 2.1 伪代码(简单写出大体步骤)



  • 2.2 实验总结

      要熟悉一些方法,如:
    map.put(key, value);//将指定值与此映射中的指定键进行关联
    map.get(key);//返回指定键所映射的值,无映射则返回 null
    map.getKey();//返回与此项对应的键
    map.getValue();//返回与此项对应的值
  • 2.3 截图你的提交结果(出现学号)

3. 倒排索引(尽量不要出现代码)

题集jmu-Java-05-集合之5-4

  • 3.1 伪代码(简单写出大体步骤)





  • 3.2 实验总结

      1. 要学会将键入的语句进行分开分析,熟悉Scanner putLine = new Scanner(strLine);这样子的语句对行字符串操作的同时对该行的每个字符串操作;
    2. set是可以作为一个整体操作的,如:
    map.put(str,mySet);
    这里就把set作为键str的映射值和str储存到了map里
    3. 关于for循环我学到了两种句式:
    ①for(初始条件;循环条件;循环后的操作){循环语句}
    ②for(元素:元素集){循环语句}
    (在这里,元素属于元素集,该循环是对元素集的每一个元素进行遍历的循环操作)
  • 3.3 截图你的提交结果(出现学号)

4. Stream与Lambda

编写一个Student类,属性为:

private Long id;
private String name;
private int age;
private Gender gender;//枚举类型
private boolean joinsACM; //是否参加过ACM比赛
创建一集合对象,如List,内有若干Student对象用于后面的测试。
  • 4.1 使用传统方法编写一个方法,将id>10,name为zhang, age>20, gender为女,参加过ACM比赛的学生筛选出来,放入新的集合。在main中调用,然后输出结果。

  • 4.2 使用java8中的stream(), filter(), collect()编写功能同4.1的函数,并测试。

      public static void main(String[] args) {
    List<Student> list1 = new ArrayList<Student>();
    List<Student> list2 = new ArrayList<Student>();
    List<Student> list3 = list1.stream().filter(i -> {
    if(i==null)
    return false;
    if (i.getId() > 10 || i.getName().equals("zhang") || i.getAge() > 20 || i.getGender() == Gender.woman
    || i.isJoinsACM() == true) {
    return true;
    }
    return false;
    }).collect(Collectors.toList()); }
  • 4.3 构建测试集合的时候,除了正常的Student对象,再往集合中添加一些null,然后重新改写4.2,使其不出现异常。

      同4.2

5. 泛型类:GeneralStack

题集jmu-Java-05-集合之5-5 GeneralStack
  • 5.1 GeneralStack接口的代码

  • 5.2 结合本题,说明泛型有什么好处

      泛型将操作的数据类型进行了参数化,使之和一个参数一样可变动;
    在这道题里,我们将GeneralStack接口利用泛型,如上题图,
    对这个接口的实现同样用T返回和定义传入和返回值,那么对实现类型的变量定义就只需要如图:





	改动的只是“<>”内的参数类型,而不用为了该种参数而重复定义新的类;
这样可以更好地复用代码,提高工作效率,使类、方法等可以通用化;
从此无需使用有风险的强制类型转换,错误在编译阶段就能发现不用等运行时才发现错误。
  • 5.3 截图你的提交结果(出现学号)

6. 泛型方法

  • 6.1 编写方法max,该方法可以返回List中所有元素的最大值。List中的元素必须实现Comparable接口。编写的max方法需使得String max = max(strList)可以运行成功,其中strList为List类型。也能使得Integer maxInt = max(intList);运行成功,其中intList为List类型。

  • 6.2 选做:现有User类,其子类为StuUser,且均实现了Comparable接口。编写方法max1,基本功能同6.1,并使得max1(stuList);可以运行成功,其中stuList为List类型。

  • 6.3 选做:编写int myCompare(T o1, T o2, Comparator c)方法,该方法可以比较User对象及其子对象,传入的比较器c既可以是Comparator,也可以是Comparator。注意:该方法声明未写全,请自行补全。

7. 选做:逆向最大匹配分词算法

集合实验文件中的第07次实验(集合).doc文件,里面的题目6.
  • 7.1 写出伪代码即可
  • 7.2 截图你的代码运行结果。

8. 选做:JavaFX入门

  • 完成其中的作业1、作业2。内有代码,可在其上进行适当的改造。建议按照里面的教程,从头到尾自己搭建。

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

题目集:jmu-Java-05-集合
  • 3.1. 码云代码提交记录

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

  • 3.2. PTA实验

    • 函数(4-1),编程(5-3,5-4,5-5)实验总结已经在作业中体现,不用写。

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

  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. css小随笔

    一.什么是CSS W3C标准中,倡导有3:其一为内容与表现分离,其二为内容与行为分离,其三为内容结构的语义化.其倡导中第一条的"表现"指的便可以说是CSS.CSS全称Cascadi ...

  2. MySQL中索引的基础知识

    本文是关于MySQL中索引的基础知识.主要讲了索引的意义与原理.创建与删除的操作.并未涉及到索引的数据结构.高性能策略等. 一.概述 1.索引的意义:用于提高数据库检索数据的效率,提高数据库性能. 数 ...

  3. Kotlin 初窥门径[1]:基础概念

    Kotlin 是由 JetBrains 开发的基于JVM的语言.JetBrains 因为创造了一个强大的Java开发 IDE(Intellij) 而被大家所熟知.Android Studio 就是基于 ...

  4. .Net Core下通过Proxy 模式 使用 WCF

    .NET Core下的WCF客户端也是开源的,这次发布.NET Core 2.0,同时也发布了 WCF for .NET Core 2.0.0, 本文介绍在.NET Core下如何通过Proxy 消费 ...

  5. 一个基于ES5的vue小demo

    由于现在很多vue项目都是基于ES6开发的,而我学vue的时候大多是看vue官网的API,是基于ES5的,所以对于刚接触项目的我来说要转变为项目的模块化写法确实有些挑战.因此,我打算先做一个基于ES5 ...

  6. 压缩感知中的数学知识:稀疏、范数、符号arg min

    转自:http://blog.csdn.net/jbb0523/article/details/40262629 1.稀疏:什么是K稀疏呢? 在压缩感知里经常提到 "K稀疏" 的概 ...

  7. HTML基础进阶

    [toc] HTML表单 form标签 <form> 标签代表一个表单,表单用于向服务器传输数据. 标签能够包含 <input> ,可以是文本字段,复选框,单选框或提交按钮等. ...

  8. c#获取数组中指定元素的索引

    //获取元素的索引 ArrayList arrList = new ArrayList(); ; i < array.Length; i++) { ) { arrList.Add(i); } } ...

  9. C语言 进程控制---创建进程fork()函数

    #include "sys/types.h" #include "stdio.h" #include "stdlib.h" #include ...

  10. Java温故而知新-空心菱形

    空心菱形 今天做题练手,题目是空心菱形,一开始没什么思路,去网上找了找,发现很难找到讲的通透的,自己现在独立做出来了,记录一下,以备后用. * * * * * * * * * * * * * * * ...