1. 本周学习总结

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

2. 书面作业

本次作业题集集合
1.List中指定元素的删除(题目4-1)
1.1 实验总结

public static void remove(List<String> list, String str){for (int i =list.size()-1;  i >=0; i--) {if(list.get(i).equals(str)){list.remove(i);}}}

答:实验中运用到了equals方法和remove方法。当使用了scanner方法时,要使用sc.close()将其关闭。

2.统计文字中的单词数量并按出现次数排序(题目5-3)
2.1 伪代码(简单写出大体步骤)
2.2 实验总结

答:2.1

Map<String, Integer>map = new HashMap<String.Integer>();//用hashmap进行键值对的放入
获取输入的英文单词
while(sc,hasNext())
{
if(get(str)==null)//如果为空
put(key,value);//就放入一对键值对
else
put(key,value+1);
}
创造一个ArrayList<Map.Entry<String, Integer>> arrayList
和一个collection接口的比较方法,来比较Map.Entry<String, Integer
for (Map.Entry<String, Integer> entry :arrayList)
{if(i==10){break;}System.out.println(entry.getKey()+"="+entry.getValue());i++;
}

2.2
用hashmap的方法,hashmap用于储存键值对,用get()put()方法来获取和放入键值对。用列表来实现排序。collection接口那里有点不会。

3.倒排索引(题目5-4)
3.1 截图你的提交结果(出现学号)
3.2 伪代码(简单写出大体步骤)
3.3 实验总结

答:
3.1

3.2

Map<String, Set<Integer>>index = new TreeMap<String, Set<Integer>>();
ArrayList<String> wordlines=new ArrayList <String>();
输入的时候
if(!key.word)
{put(key,value)
}
else//有key.word
{get(key.word)
}
//关键句同理
输出的时候
if(findword.length==1}
{if(find key.word)System.out.println();else found 0 results; }
else
{if(find key.line)System.out.println();else found 0 results; }

3.3
输入输出的时候要考虑很多种可能,尤其是输出的时候,找不到时返回null。

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的函数,并测试。
4.3 构建测试集合的时候,除了正常的Student对象,再往集合中添加一些null,然后重新改写4.2,使其不出现异常。

答:
4.1

    public Student find(){if(this.id>10L&&this.name.equals("zhang")&&this.age>20&&this.gender==Gender.female&&this.joinsACM){Student n=new Student(this.id,this.name,this.age,this.gender,this.joinsACM);return n;}elsereturn null;}
//主函数public static void main(String[] args) {// TODO Auto-generated method stubArrayList<Student> list=new ArrayList<Student>();Student n1=new Student(100L,"zhang",15,Gender.male,true);Student n2=new Student(18L,"zhang",22,Gender.female,true);Student n3=new Student(18L,"xu",22,Gender.female,true);list.add(n1);list.add(n2);list.add(n3);for (Student student : list) {System.out.println(student.find());}

4.2

ArrayList<a> arrayList2 = (ArrayList<a>) arrayList.parallelStream().filter(a->10<a.getId()&&a->"zhang".equals(a.getName())&&a->20<a.getAge()&&a->a.isJoinsACM()==true).collect(Collectors.toList());

4.3

ArrayList<a> arrayList2 = (ArrayList<a>) arrayList.parallelStream().filter(a->a!=null&&a->10<a.getId()&&a->"zhang".equals(a.getName())&&a->20<a.getAge()&&a->a.isJoinsACM()==true).collect(Collectors.toList());

5.泛型类:GeneralStack(题目5-5)
5.1 截图你的提交结果(出现学号)
5.2 GeneralStack接口的代码
5.3 结合本题,说明泛型有什么好处

答:
5.1

5.2

interface GeneralStack<T> {T push(T item);          T pop();    T peek();     //获取栈顶元素           public boolean empty();public int size();
}

5.3
使用泛型就可以不用定义多个类,GeneralStack接口对任何引用类型的数据都适用,泛型消除强制类型转换,错误在编译阶段就能发现不用等到运行的时候,这样可以简化代码同时减少了出错机会。

6.泛型方法
基础参考文件GenericMain,在此文件上进行修改。
6.1 编写方法max,该方法可以返回List中所有元素的最大值。List中的元素必须实现Comparable接口。编写的max方法需使得String max = max(strList)可以运行成功,其中strList为List。

import java.util.ArrayList;
import java.util.List;public class Main {public static <T extends Comparable<T>> T max(List<T> list){                     T max = list.get(0);for (T t : list) {if ( t.compareTo( max ) > 0 ){max = t; }}return max; }public static void main(String[] args) {List<String>strList=new ArrayList<String>();strList.add("q");strList.add("z");strList.add("w");String max = max(strList);System.out.println("String max="+max);}}

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

题目集:jmu-Java-05-集合
3.1. 码云代码提交记录
在码云的项目中,依次选择“统计-Commits历史-设置时间段”, 然后搜索并截图

转载于:https://www.cnblogs.com/jiaowoxiaotiancai/p/6711112.html

201521123011 《Java程序设计》第8周学习总结相关推荐

  1. 20175317 《Java程序设计》第一周学习总结

    20175317 <Java程序设计>第一周学习总结 教材学习内容总结 本周学习了Java大致的开发步骤,完成了课件自带的习题. 学习了在windows与Linux系统下不同的编译方法,掌 ...

  2. 20155227 2016-2017-2 《Java程序设计》第九周学习总结

    20155227 2016-2017-2 <Java程序设计>第九周学习总结 教材学习内容总结 JDBC简介 JDBC全名Java DataBase Connectivity,是java联 ...

  3. 20172318 2016-2017-2 《Java程序设计》第一周学习总结

    20172318 2016-2017-2 <Java程序设计>第一周学习总结 教材学习内容总结 在教材中基本明白了计算机系统的运行方式,了解了对于高级语言是使用是掌握好编程的关键,掌握了一 ...

  4. 20155303 2016-2017-2 《Java程序设计》第二周学习总结

    20155303 2016-2017-2 <Java程序设计>第二周学习总结 教材学习内容总结 『注意』 "//"为单行批注符: "/*"与&quo ...

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

    20175208 2018-2019-2 <Java程序设计>第九周学习总结 一.教材学习内容总结: 第11章 JDBC与MySQL数据库 MySQL数据库管理系统 MySQL数据库管理系 ...

  6. 20175204 张湲祯 2018-2019-2《Java程序设计》第九周学习总结

    20175204 张湲祯 2018-2019-2<Java程序设计>第九周学习总结 教材学习内容总结 -第十一章JDBC和MySQL数据库要点: 1.下载MySQL和客户端管理工具navi ...

  7. 20155313 2016-2017-2 《Java程序设计》第二周学习总结

    20155313 2016-2017-2 <Java程序设计>第二周学习总结 教材学习内容总结 1.1 基本类型 整数:可细分为short整数(占2字节).int整数(占4字节)与long ...

  8. 20155226 2016-2017-2 《Java程序设计》第一周学习总结

    20155226 2006-2007-2 <Java程序设计>第一周学习总结 教材学习内容总结 第一周主要学习了一二章的内容,也浏览了剩余章节,以下是本周主要学习内容总结 1.首先了解了[ ...

  9. 20172325 2018-2019-1 《Java程序设计》第二周学习总结

    20172325 2018-2019-1 <Java程序设计>第二周学习总结 教材学习内容总结 3.1集合 集合是一种聚集.组织了其他对象的对象.集合可以分为两大类:线性集合和非线性集合. ...

  10. 张旭升20162329 2006-2007-2 《Java程序设计》第一周学习总结

    20162329 2006-2007-2 <Java程序设计>第一周学习总结 教材学习内容总结 通过打书上的代码熟悉了Java编程的基本过程 教材学习中的问题和解决过程 1.因为我的虚拟机 ...

最新文章

  1. 干货 | 循环神经网络LSTM的数学过程
  2. JDK、J2EE、J2SE、J2ME的区别
  3. HTML5 Web 存储(localStorage和sessionStorage)
  4. mysql jdbc 绑定变量_jdbc测试mysql数据库sql预解析(绑定变量)
  5. jquery-加入购物车动画
  6. [Ubuntu+opencv]Ubuntu18.04安装opencv3.4.3
  7. 提供生成静态页核心代码
  8. scara机器人用户坐标系标定与工具坐标(TCP)标定
  9. php-fpm优化总结
  10. 【cocos creator实战】记录微信小游戏登录授权的开发-小游戏审核
  11. python爬虫之scrapy初试与抓取链家成交房产记录
  12. 大学生求职的互联网“围城”:被神化的“大厂梦”
  13. 普通青年,文艺青年,二逼青年之程序员版
  14. 如何招聘一个外贸SEO推广人员以及如何做后期的KPI考核
  15. Android拼图滑块验证码控件
  16. 计算机测评,笔记本电脑评测
  17. 无线电台、无线网桥、网络结构相关知识总结
  18. 你是否缺少一个获取Adobe国际认证证书的理由?
  19. 阻容感基础07:电容器应用
  20. 杭州亚运会改至2023年9月23日至10月8日举行

热门文章

  1. Xamarin Studio支持TypeScript开发
  2. java 利用JAX-RS快速开发RESTful 服务
  3. STM32:RTC闹钟唤醒
  4. linux 下启动mysql
  5. photoshop 常见问题与分析
  6. 可扩展的SockBase设计和实现(1)
  7. android 源码各版本下载 原生纯净版
  8. 第2章 fping、hping应用
  9. 第5章 批量主机扫描 nmap、ncat
  10. 11.10 chkconfig:管理开机服务