201521123122 《java程序设计》第八周实验总结


1. 本周学习总结

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


2. 书面作业

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

1.1 实验总结

while(sc.hasNext()){sc.next();} 可以实现以空格为分割符,将line转换为List

②比较是否为相同元素用equals函数。

③删除元素时尽量从最后一个开始删,因为remove方法在删除元素后,之后的所有元素都会向前移动一位。

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

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

1.利用Map<String,Integer> map = new HashMap<String,Integer>()创建键对象和值对象的映射

2.用if函数判断是否包含指定的键名,若是出现过的单词则value+1,否则value=1。

3.转化为list并对其中的元素进行排序

4.输出次数排序前10 的元素。

2.2 实验总结

主要还是对Map映射的掌握,判断是否有包含其中的键名要用containsKey.还有将Map转化为List的语法List<Map.Entry<String,Integer>> entrylist=new ArrayList<Map.Entry<String,Integer>>(str.entrySet()),

倒排索引(题目5-4)

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

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

1.用HashMap统计单词出现的次数

3.转化成list,用Comparato接口实现排序,输出

4.输入另一串文字,储存

5.存放在另一个HashMap

6.如果找到,输出行集与行集内每一行的内容,如果没找到输出found 0 results

3.3 实验总结

其实和第二题原理差不多,但是要难很多。

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

代码如下:

public Student find()
{
if(this.id>10&&this.name.equals("zhang")&&this.age>20&&this.gender==Gender.female&&this.joinsACM)
{
Student she=new Student(this.id,this.name,this.age,this.gender,this.joinsACM);
return she;
} else
return null;

运行结果如图

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

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

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

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

5.2 GeneralStack接口的代码

interface GeneralStack<E> {
E push(E e);
E pop();
E peek();
boolean empty();
int size();
}

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

编译的时候检查类型安全,并能捕捉类型不匹配的错误,并且所有的强制转换都是隐式的和自动的,提高代码的重用率。

泛型方法

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

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

代码如下:

public class Max {

    public static void main(String[] args) {
List<String> strList = new ArrayList<String>();
List<Integer> intList = new ArrayList<Integer>();
strList.add("acd");
strList.add("fg");
strList.add("eh");
intList.add(2);
intList.add(4);
intList.add(6);
String max = max(strList);
Integer maxInt = max(intList);
System.out.println("max = " + max);
System.out.println("maxInt =" + maxInt);
} public static <T extends Comparable<T>> T max(List<T> list) {
T max = list.get(0);
for(T i : list){
if(i.compareTo(max)>0)
max = i;
}
return max;
}
}

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

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

3.1. 码云代码提交记录

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

201521123122 《java程序设计》第八周实验总结的更多相关文章

  1. 201771010123汪慧和《面向对象程序设计JAVA》第八周实验总结

    一.理论部分 1.接口 用interface声明,是抽象方法和常量值定义的集 合.从本质上讲,接口是一种特殊的抽象类. 在Java程序设计语言中,接口不是类,而是对类 的一组需求描述,由常量和一组抽象 ...

  2. 201521123008《Java程序设计》第二周实验总结

    本周学习总结 ① 数据类型,其中char是占用两个字节的内存空间,其他和以前学过的一样.除了十进制位,整型也可以用八进制或者十六进制表示.浮点型不精确. ②运算符,算术,赋值,逻辑,位运算. ③str ...

  3. 201521123008<java程序设计>第三周实验总结

    1.本周学习总结 2.书面作业 1.代码阅读 public class Test1 { private int i = 1;//这行不能修改 private static int j = 2; pub ...

  4. 201521123027 <java程序设计>第八周学习总结

    1.本周学习总结 1.1思维导图 2.书面作业 Q1.List中指定元素的删除(题目4-1) 1.1 实验总结 总结:判断List中是否存在指定元素,需要用到equals方法,若存在就用remove进 ...

  5. 201521123122 《java程序设计》第九周学习总结

    201521123122 <java程序设计>第九周实验总结 1. 本周学习总结 以你喜欢的方式(思维导图或其他)归纳总结集合相关内容. 2. 书面作业 常用异常 题目5-1 1.1 截图 ...

  6. 201621123005《Java程序设计》第九次实验总结

    201621123005<Java程序设计>第九周实验总结 1. 本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结集合与泛型相关内容. 1.2 选做:收集你认为有用的代码片段 ...

  7. 20162317袁逸灏 第八周实验报告:实验二 Java面向对象程序设计

    20162317袁逸灏 第八周实验报告:实验二 Java面向对象程序设计 实验内容 初步掌握单元测试和TDD 理解并掌握面向对象三要素:封装.继承.多态 初步掌握UML建模 熟悉S.O.L.I.D原则 ...

  8. 201571030332 扎西平措 《面向对象程序设计Java》第八周学习总结

    <面向对象程序设计Java>第八周学习总结   项目 内容 这个作业属于哪个课程 https://www.cnblogs.com/nwnu-daizh/ 这个作业的要求在哪里 https: ...

  9. 201871010106-丁宣元 《面向对象程序设计(java)》第八周学习总结

    201871010106-丁宣元 <面向对象程序设计(java)>第八周学习总结 正文开头: 项目 内容 这个作业属于哪个课程 https://home.cnblogs.com/u/nwn ...

随机推荐

  1. PHP+ajaxForm异步带进度条上传文件实例

    在使用ajaxForm方法之前,首先需要安装form.js的插件,网上有: 一.首先说用法,ajaxForm可以接收0或1个参数,该参数可以是一个变量.一个对象或回调函数,这个对象主要有以下参数: v ...

  2. 66. Plus One【leetcode】

    Given a non-negative integer represented as a non-empty array of digits, plus one to the integer. Yo ...

  3. Java框架概述

    一.框架的意义 1.什么是框架? 框架就是一些类和接口的集合,通过这些类和接口协调来完成一系列的程序实现.有了框架,我们就可以集中精力进行业务逻辑的开发而不用去关心它的技术实现以及一些辅助的业务逻辑. ...

  4. Mysql事务处理详细讲解及完整实例下载

    一.Mysql事务概念 MySQL 事务主要用于处理操作量大,复杂度高的数据.由一步或几步数据库操作序列组成逻辑执行单元,这系列操作要么全部执行,要么全部放弃执行.在 MySQL 中只有使用了 Inn ...

  5. 【NO.5】jmeter-结果文件

    Jmeter的结果文件可以保存很多内容,你需要看哪个就勾选哪个,很简单是吧. 结果文件可以保存为2种形式:XML或者CSV.我印象里在书上提到过,如果保存为XML形式的结果文件,后续可以转化为表格便于 ...

  6. JAVASCRIPT 调用 其他应用程序的方法

    在上一篇中就已经提供了一种方法,就是通过自己写OCX 给OCX 传入路径,通过OCX 启动应用程序.当然这种方法可扩展性很多,不一定是启动应用程序了.今天提供另一种比较简单的可以启动应用程序的方法,不 ...

  7. Vue自定义事件

    前面的话 父组件使用props传递数据给子组件,子组件怎么跟父组件通信呢?这时,Vue的自定义事件就派上用场了.本文将详细介绍Vue自定义事件 事件绑定 每个 Vue 实例都实现了事件接口 (Even ...

  8. Vue过渡效果之JS过渡

    前面的话 与CSS过渡不同,JS过渡主要通过事件进行触发.本文将详细介绍Vue过渡效果之JS过渡 事件钩子 JS过渡主要通过事件监听事件钩子来触发过渡,共包括如下的事件钩子 <transitio ...

  9. java子类和父类中静态块、非静态块、构造函数的执行顺序

    public class qqqq extends Parent{ public static void main(String[] args) { new Child(); } } class Pa ...

  10. c#通过反射获取自定义属性

    PropertyInfo[] properties = typeof(BPM_ContractApproval_Purchase).GetProperties(); foreach (var prop ...