1. 本周学习总结

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

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

  • 泛型,即参数化类型,不考虑类型参数的继承关系,getClass方法的返回值和原始类型完全一样

  • 集合使用泛型,避免了强制类型转换出现的不安全性问题

  • 泛型不用object,而是用通配符?表示任意类型,?通配符定义的变量主要用作引用

  • 类型参数没有赋值的时候,不能调用与类型参数有关的方法(方法中有泛型参数的方法)

     关于泛型的一些术语:
    ArrayList<E> 泛型类型
    ArrayList<E>中的E 类型变量或者类型参数
    ArrayList<String> 参数化的类型
    ArrayList<String>中的String 实际类型参数
    ArrayList<String>中的<>读作type of

2. 书面作业

本次作业题集集合

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

1.1 实验总结

    答:编写covnertStringToList函数的时候最好在return  words;前添上sc.close();以免警告致出错;remove函数中if(list.get(i).equals(str)){list.remove(i);i--;}语句删除出现的相同元素。

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

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

    答:
List<Entry<String,Integer>> list=new ArrayList<Entry<String,Integer>>();//放入List集合中
for(Entry<String,Integer>e:dict.entrySet()){//map.entryset()方法返回Entry的集合
list.add(e);}
Collections.sort(list,newComparator<Entry<String,Integer>>(){//此处进行比较排序}
int i = 0;
for(Map.Entry<String, Integer> top10_words:list){
if(i == 10) break;
System.out.println(top10_words.getKey() + "="+ top10_words.getValue());
i++;
}

2.2 实验总结

   答:我用Map<String,Integer>来存储单词和次数,然后把Map放到一个新的list中,对这个新的List进行按照其下的Map中的value值进行降序排序,Key值升序排序,一开始排序这里出了错弄了很久;最后遍历上一步的list,输出打印top10的单词。

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

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

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

3.3 实验结果

答:首先,这道题我理解了挺久的,好难还没有解决。我觉得,应该是要先提取倒排索引内词典文件中的关键词;再对提取出来的关键词进行hash编码。此题要考虑需要查找的单词是否存在与其所在行的关系,分情况考虑。

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

public Student(Long id,String name,int age,Gender gender,boolean joinsACM){
super();
this.id=id;
this.name=name;
this.age=age;
this.gender=gender;
this.joinsACM=joinsACM;
}
public Student findout()
{
if(this.id>10L&&this.name.equals("zhang")&&this.age>20&&this.gender==Gender.女&&this.joinsACM)
{
Student a=new Student(this.id,this.name,this.age,this.gender,this.joinsACM);
return a;
}
else
return null;
}
@Override
public String toString() {
return "Student [id=" + id + ", name=" + name + ", age=" + age
+ ", gender=" + gender + ", joinsACM=" + joinsACM+"]";
}} 4.2 使用java8中的stream(),filter(),collect()编写功能同4.1的函数,并测试。
4.3 构建测试集合的时候,除了正常的Student对象,再往集合中添加一些null,然后重新改写4.2,使其不出现异常。

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

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

5.2 GeneralStack接口的代码

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

6.泛型方法

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

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历史-设置时间段”, 然后搜索并截图



3.2. PTA实验

函数(4-1),编程(5-3,5-4,5-5)

实验总结已经在作业中体现,不用写。

201521123068 《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. mybatis 详解(八)------ 懒加载

    本章我们讲如何通过懒加载来提高mybatis的查询效率. 本章所有代码:http://pan.baidu.com/s/1o8p2Drs 密码:trd6 1.需求:查询订单信息,有时候需要关联查出用户信 ...

  2. JavaScript表单

    JavaScript表单 这篇文章的主要目的是介绍表单相关的知识,如表单基础知识.文本框脚本相关用法.选择框脚本相关用法以及等知识.虽然在现代web开发中,很少会使用form默认行为提交表单数据,而是 ...

  3. ios 加密

    0728 加密 MD5加密 可解 因为有MD5库 但是可以通过 加盐(也就是拼接字符串  在进行加密)的方法进行加密这样在解得时候就不会那么容易 也可以使用时间戳 进行加盐 加密 时间戳 可只用到分钟 ...

  4. JavaScript操作cookie基础分析

    简要介绍 cookie是什么cookie是HTTP协议的一部分.HTTP Cookie(也叫Web cookie或者浏览器Cookie)是服务器发送到用户浏览器并保存在浏览器上的一块数据,它会在浏览器 ...

  5. android学习ScrollView的使用

    ScrollView 的使用相对来讲比较简单,通过包含更多的布局文件,使得上下滑动可以浏览到更多内容. 关于ScrollView有几个点需要注意的地方 1,ScrollView的滚动方式 Scroll ...

  6. 解读java同步类CountDownLatch

    同步辅助类: CountDownLatch是一个同步辅助类,在jdk5中引入,它允许一个或多个线程等待其他线程操作完成之后才执行. 实现原理 : CountDownLatch是通过计数器的方式来实现, ...

  7. Pycharm快捷键的使用

    1.编辑(Editing) Ctrl + Space 基本的代码完成(类.方法.属性)Ctrl + Alt + Space 快速导入任意类Ctrl + Shift + Enter 语句完成Ctrl + ...

  8. Eclipse快捷键:同时显示两个一模一样的代码窗口

    如图: 同样的一个HTML文件,在代码编辑窗口,显示两个.   快捷键: Ctrl + Shift + -(减号)   既可以展示两个,也可以只显示一个 附加一个快捷键: Ctrl + Shift + ...

  9. javascript如何创建一个换行节点

    换行节点和其他节点的创建方式一样,使用document.createElement("br");创建节点, 并使用parentNode.appendChild()将节点插入到相应的 ...

  10. LinkedList之modCount和expectedModCount

    modCount和expectedModCount是用于表示修改次数的,其中modCount表示集合的修改次数,这其中包括了调用集合本身的add方法等修改方法时进行的修改和调用集合迭代器的修改方法进行 ...