1. 本周学习总结

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

2. 书面作业

本次作业题集集合

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

1.1 实验总结

1.提交函数实验题时只要提交编写的函数即可,不然会出现编译错误

2.出现了一次答案错误,点击查看当时的代码,发现错误点为误用"=="比较字符串。

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

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

while(has next word)
if(the map doesn't contains the word)
put the word into the map
else
get the value in the map to add 1
sort the map
printout the result

1.用HashMap先建立一个映射关系,

关键处

            if(cnt==null){
map.put(key, 1);
}else{
map.put(key, cnt+1);
}

2.然后转化为集合用sort排序编写compare

关键处

public int compare(Entry<String, Integer> o1, Entry<String, Integer> o2) {
// TODO Auto-generated method stub
int x=o2.getValue()-o1.getValue();
if(x!=0)
return x;
else
return o1.getKey().compareTo(o2.getKey());
}

3.最后输出

2.2 实验总结

1.可以看到出现了编译错误用来是pta识别不了jdk8的语法,所以之后提交的时候不能用jdk8的语法。



2.在控制台输入的时候不能用line

3.倒排索引(题目5-4)

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

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

1.建索引 Map<String,Set<Integer>> map=new TreeMap<String,Set<Integer>>();

2.分为只有一个单词和多个单词来查找

create a map to keep the reference
printout the reference
search the keywords
create an Collection to keep the result
if(the Collection is empty)
output "found 0 results"
else
output Collection

3.3 实验总结

这题还是比较难的,用到了很多的种集合类型,做完这题收获还是比较大的,学会用s.split(" "),但是我对自己查找单词的算法不是很满意,感觉有点冗长。算法啊算法。

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 List<Student> Search(List<Student> list){
List<Student> t= list.stream().filter(e->e.getId()>10l&&e.getName().equals("zhang")
&&e.getGender().equals(Gender.女)&&e.isJoinsACM()&&e.getAge()>20).collect(Collectors.toList());
return t;
}

功能一样,结果一样。

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

public static List<Student> Search(List<Student> list){
List<Student> t= list.stream().filter(e->e != null&&e.getId()>10l&&e.getName().equals("zhang")
&&e.getGender().equals(Gender.女)&&e.isJoinsACM()&&e.getAge()>20).collect(Collectors.toList());
return t;
}

5.泛型类:GeneralStack(题目5-5)

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

5.2 GeneralStack接口的代码

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

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

从本题来看,我们知道以前所定义IntegerStack接口,只能用于存放Integer类型的数据。然而对于栈来说,不管内部存放的是什么类型的数据,基本操作与元素的具体类型无关。这时就需要用到泛型,这样就不用因为类的不同而去重复写一样的代码。

6.泛型方法

基础参考文件GenericMain,在此文件上进行修改。

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

public static <T extends Comparable> T Max(List<T> list){
T max= list.get(0);
for(T e:list){
if(e.compareTo(max)>0)
max=e;
}
return max;
}

3. 使用码云管理Java代码

201521123002《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. jvm参数解析(含调优过程)

    前阵       对底层账单系统进行了压测调优,调优的最后一步--jvm启动参数中,减小了线程的堆栈空间:-XX:ThreadStackSize=256K,缩减至原来的四分之一,效果明显,不过并没有调 ...

  2. 【javascript】函数中的this详解 — 大家准备好瓜子,我要讲故事啦~~

       javascript中的this和函数息息相关,所以今天,我就给大家详细地讲述一番:javascript函数中的this   一谈到this,很多让人晕晕乎乎的抽象概念就跑出来了,这里我就只说最 ...

  3. 前端到后台ThinkPHP开发整站(7)

    今晚我继续这个项目的前台开发,把前台的做出来了,现在项目进行一个收尾工作了,还有栏目页和一个文章页的开发,做完这两个算是完成了.说到这里感觉有点松懈了,把剩下两个功能页面做完在吹吧,先看看今天弄的代码 ...

  4. JS中的变量和输入输出

    一.使用JS的三种方式 1.在HTML标签中,直接内嵌JS(并不提倡使用) <button onclick="alert('点你咋地')">点我</button& ...

  5. PHPExcel导出excel表格

    if(!function_exists('exportExcel')){    //导出excel文件    function exportExcel($datas, $save_method='ht ...

  6. HDU 6170----Two strings(DP)

    题目链接 Problem Description Giving two strings and you should judge if they are matched.The first strin ...

  7. Web 学习笔记 - 网络安全

    前言 作为 前端开发者,了解一点 Web 安全方面的基本知识是有很必要的,未必就要深入理解.本文主要介绍常见的网络攻击类型,不作深入探讨. 正文 网络攻击的形式种类繁多,从简单的网站敏感文件扫描.弱口 ...

  8. php设计模式--注册器模式

    之前介绍过工厂模式和策略模式有两种方式去调用方法,一种是用工厂方法调用,一种是单例调取实例,那实际上这两种都有一个缺点(可能也不应该称为缺点,也可叫不足),有一个比较好的方法就是已经创建好的这个对象, ...

  9. 学习CSS记录:选择符优先级

    1.标有!important 关键字声明属性. 2.HTML中的CSS样式属性. 3.作者编辑的CSS文件模式属性. 4.用户设置的样式. 5.浏览器默认的样式. ------------------ ...

  10. 34、锁问题与线程queue

    上一篇随笔我们学了全局解释器锁,前面也学了互斥锁,今天学习一些与锁相关的点,例如递归锁,信号量,Event,还会学习我们已经很熟悉的队列,不过这次的队列是作为一个模块出现的. 一.同步锁 1.join ...