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. 自制刻度尺-前端简易实现"腾讯信用"界面

    依据我现有的知识,在前端上"简易"的实现了腾讯信用的界面,同时自己自制了一个竖直的刻度尺插件,曲线的位置可以根据传入的数值动态的改变,这次主要也想总结一下关于jQuery中exte ...

  2. 【python密码学编程】5.反转加密法

    #Reverse Cipher message = 'there can keep a secret,if two of them are dead.' translated = '' i = len ...

  3. java8之lambda表达式入门

    1.基本介绍 lambda表达式,即带有参数的表达式,为了更清晰地理解lambda表达式,先上代码: 1.1 两种方式的对比 1.1.1 方式1-匿名内部类 class Student{ privat ...

  4. 使用jdbc调用存储,函数

    public class JdbcTest {        private Connection conn = null;    private PreparedStatement pst = nu ...

  5. phpexcel导入excel处理大数据

    先下载对应phpExcel 的包就行了https://github.com/PHPOffice/PHPExcel下载完成 把那个Classes 这个文件夹里面的 文件跟文件夹拿出来就好了.直接写到PH ...

  6. 【Spring】web开发 javaConfig方式 图解

    spring3.2之后开始支持java配置方式开发web项目,不使用web.xml,但需要在servlet3.0环境,一般tomcat7会支持,6不行 下图中:MyAppInitializer和Spr ...

  7. vue.js基础知识篇(7):表单校验详解

    目录 网盘 第12章:表单校验 1.npm安装vue-validator $ npm install vue-validator 代码示例: var Vue=require("vue&quo ...

  8. [2017-08-09]一则使用WinDbg工具调试iis进程调查内存占用过高的案例

    最近遇到一个奇葩内存问题,跟了三四天,把Windbg玩熟了,所以打算分享下. 症状简介 我们团队的DEV开发环境只有一台4核16G的win2012r2. 这台服务器上装了SqlServer.TFS(项 ...

  9. java调取数据库

    import java.sql.Connection;import java.sql.DriverManager;import java.sql.ResultSet;import java.sql.S ...

  10. CountDownLatch与CyclicBarrier

    对于AbstractQueuedSynchronizer衍生出来的并发工具类,这一篇再介绍俩. 场景1:有4个大文件的数据需要统计,最终将所有的统计结果进行加工,得到最后的分析数据.为了加速处理过程, ...