• 201521123093 java 第八周总结


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

  • 相关阅读:
    git clone失败
    矩阵相乘
    pandas中关于DataFrame 去除省略号
    Linux系统清除缓存
    Git 远程仓库 更新url
    看不到git远程分支
    c++
    undefined reference to symbol' pthread_create@@GLIBC_2.2.5'
    ssh 与远程机器保持心跳(linux)
    python 读取文件第一列 空格隔开的数据
  • 原文地址:https://www.cnblogs.com/zhaoMing3/p/6695415.html
Copyright © 2020-2023  润新知