1. 本周学习总结

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

1.2 选做:收集你认为有用的代码片段

  • 1、泛型简介:同一个代码可以被不同的对象重用

  • 2、使用泛型的好处:允许指定集合中元素的类型,这样就可以避免使用有风险的

    强制类型转换,并且如果在使用过程中有出错的话在编译的

    时候就能发现,不需要等到运行的时候才能知道错误。

  • 3、使用泛型的约束与局限性:不能使用基本类型

2. 书面作业

1、List中指定元素的删除

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

1.1 实验总结

   答:这题嘛,在实验课上写的,基本上就是根据老师讲的写的,可能自己比较笨吧还是用了挺长时间才写出来的,
删除那一块一开始就没弄懂,后面才知道是自己写重了然后就一直不能使用,不过最后还是写出来了。

1.2 截图你的提交结果(出现学号)

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

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

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

while(sc.hasNext()){
String key = sc.next();
if(判断输入是否结束){
break;
}
add(添加)
if(判断是否有一样的单词){
有value加一
没有value为一
}
if(比较最后value的大小,若相等){
按照key字母排序输出
}
else{
按照value大小输出
}
for(<10){
输出前10个单词和他的value
}
}

2.2 实验总结

    答:一开始在实验课上并没有写出来,后面根据老师给的代码再结合5-2的实验,但这题是用map来写的,
其实老师给的代码挺全的了,只要把后面排序的问题和前面输入添加一下就可以用了。

2.3 截图你的提交结果(出现学号)

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

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

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

输入的时候和前面两题一样
//判断
while(sc.hasNext()){
for(int i=0;i<lineword.length;i++){ //对行进行检索
if(word contains key){
value++
输出所在行数与所在行数的所有信息
}
输出found 0 results
} }

3.2 实验总结

  答:刚开始看到题目的时候感觉和前面的两题差不多,但是!那只是感觉,并不知如何下手
知道要用Map,可是就是不知道怎么写啊,怎么输出整个单词。过程很艰辛,结局很满意。

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中调用,然后输出结果。

private static List<Student> Search(List<Student> list) {
List<Student> list1 = new ArrayList<Student>();
for(Student student:list){
if(student.getId()>10&&student.getName().equals("zhang")&&student.getAge()>20
&&student.getGender().equals(Gender.female)&&student.isjionsACM()){
list1.add(student);
}
}
return list1;
}

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

newlist=(ArrayList<Student>) list.stream().filter(l->l.getId()>10&&l.getName().equals("zhang")&&l.getAge()>20&&l.getGender().equals(Gender.女)&&l.isJoinsACM()==true).collect(Collectors.toList());
for (Student student : newlist) {
System.out.println(student);
}

4.3 构建测试集合的时候,除了正常的Student对象,再往集合中添加一些null,然后重新改写4.2,使其不出现异常。

    答:在原来判断该的基础上加一个student!=null即可。

5、泛型类:GeneralStack

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

5.1 GeneralStack接口的代码

interface GeneralStack<T> {
public T push(T item); public T pop(); public T peek(); public boolean empty(); public int size();
}

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

    答:好处啊,就是不用在定义一个函数是在什么类型下使用的,这样就各个类型的都可以重复使用
同一个方法了。

5.3 截图你的提交结果(出现学号)

  这题我在eclipse上运行的答案是对的,但是在pta上一直不能通过,问了好多同学还是找不出来,真不知道哪里错了,我能怎么办我也很绝望啊。

6、泛型方法

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

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

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

3.1. 码云代码提交记录

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

201521123093 java 第八周总结的更多相关文章

  1. 20165210 Java第八周学习总结

    20165210 Java第八周学习总结 教材内容学习 - 第十二章学习总结 进程与线程 操作系统与进程 Java中的线程 Java的多线程机制 主线程 线程的状态与生命周期 1. 新建 2. 运行 ...

  2. 20145304 Java第八周学习报告

    20145304<Java程序设计>第八周学习总结 教材学习内容总结 NIO NIO使用频道来衔接数据节点,在处理数据时,NIO可以让你设定缓冲区容量,在缓冲区中对感兴趣的数据区块进行标记 ...

  3. JAVA 第八周学习总结

    20175308 2018-2019-2 <Java程序设计>第八周学习总结 教材学习内容总结 泛型 泛型的主要目的是可以建立具有类型安全的集合框架(如链表.散列映射等数据结构) 通过cl ...

  4. 20165326 java第八周学习笔记

    第八周学习笔记 知识点总结 1.进程与线程 进程:程序的一次动态执行过程 区别:进程和线程的区别? 进程是资源的分配和调度的一个独立单元,而线程是CPU调度的基本单元 同一个进程中可以包括多个线程,并 ...

  5. Java第八周学习总结

    20145113第八周学习总结 第十五章学习内容 第15章比较琐碎,相对于之前章节也比较枯燥无味看了一部分,也动手敲了些 Logger logger = Logger.getLogger(" ...

  6. 201521123093 java 第六周学习总结

    1. 本周学习总结 1.1 面向对象学习暂告一段落,请使用思维导图,以封装.继承.多态为核心概念画一张思维导图,对面向对象思想进行一个总结. 注1:关键词与内容不求多,但概念之间的联系要清晰,内容覆盖 ...

  7. 201521123093 java 第三周学习总结

    1.本周学习总结 初学面向对象,会学习到很多碎片化的概念与知识.尝试学会使用思维导图将这些碎片化的概念.知识组织起来.请使用纸笔或者下面的工具画出本周学习到的知识点.截图或者拍照上传. 本周学习总结: ...

  8. 201521123093 java 第十三周学习总结

    1. 本周学习总结 以你喜欢的方式(思维导图.OneNote或其他)归纳总结多网络相关内容. 2. 书面作业 1. 网络基础 1.1 比较ping www.baidu.com与ping cec.jmu ...

  9. Java 第八周总结

    1. 本周学习总结 2. 书面作业 1.List中指定元素的删除 1.1 实验总结 list中可以通过list.get(i)来获取具体第几个的元素的值,再通过compareTo来对比 通过in.has ...

随机推荐

  1. 序列化之protobuf与avro对比(Java)

    最近在做socket通信中用到了关于序列化工具选型的问题,在调研过程中开始趋向于用protobuf,可以省去了编解码的过程.能够实现快速开发,且只需要维护一份协议文件即可. 但是调研过程中发现了pro ...

  2. 【有意思的BUG】分享按钮 分享功能

    [分享按钮]是一个常见的功能,你可以把看到的有意思的东西分享到自己的BLOG.朋友圈之类的地方. 但是,分享出去的文本(也可以包含图片)在每个目标网站上面的格式并不是统一的,所以就存在了美感的三六九等 ...

  3. XP oracle32位客户端安装找不到orandce11.dll.dbl

    同事在XP上装oracle客户端,遇到下面的问题,mark一下. 提示找不到:orandce11.dll.dbl 点继续还会提示这个文件:orancds11.dll.dbl 网上找到解决方法: 删除注 ...

  4. 三种Join方法

    NESTED LOOP JOIN  (NLJOIN) 对于被连接的数据子集较小的情况,nested loop连接是个较好的选择.nested loop就是扫描一个表,每读到一条记录,就根据索引去另一个 ...

  5. JS非空验证及邮箱验证

    非空验证 <body> <table> <tr> <td>姓名:</td> <td><input type="t ...

  6. ReactiveCocoa应用篇(一)

    作为函数式编程和响应式编程的代表ReactiveCocoa,自一出世便受到广大码农的热爱,结合MVVM编程模式,不仅能够方便的处理各种交互事件.降低模块间的耦合性,还能简化项目结构,降低阅读和维护的成 ...

  7. 学习笔记TF051:生成式对抗网络

    生成式对抗网络(gennerative adversarial network,GAN),谷歌2014年提出网络模型.灵感自二人博弈的零和博弈,目前最火的非监督深度学习.GAN之父,Ian J.Goo ...

  8. 再起航,我的学习笔记之JavaScript设计模式14(桥接模式)

    桥接模式 桥接模式(Bridge): 在系统沿着多个维度变化的同时,又不增加其复杂度并已达到解耦 从定义上看桥接模式的定义十分难以理解,那么我们来通过示例来演示什么是桥接模式. 现在我们需要做一个导航 ...

  9. Android SharedPreferences基本用法

    使用SharedPreferences SharedPreferences是Android平台上一个轻量级的存储类, 用来保存应用的一些常用配置. SharedPreferences与Editor简介 ...

  10. QQ推广神器:批量加群、好友、群发。支持批量搜索关键词加群分享下载

    V2.1版本更新说明: 1.新增邮箱导出功能 2.新增一键添加关键词查询结果所有群 3.新增好友验证数学自动计算 4.新增好友验证答案判断 ------------------------------ ...