201521123028 《Java程序设计》第8周学习总结

1. 本周学习总结

2. 书面作业

Q1.List中指定元素的删除(题目4-1)
1.1 实验总结
Ans:
在这一题中我们需要写两个函数,分别是remove()和convertStringToList()。
①:remove的作用是需要我们输入一个单词,然后遍历list,将其中与输入单词相同的字符串删除。
具体方法是使用for循环对list进行遍历,判断相同时使用的是list.equals方法,删除字符串使用的是list.remove方法。
②:convertStringToList主要作用就是将输入(line)转换类型为List后输出给list。
1.2提交结果

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

new map(String,Integer)                //创建一个新的Map类,key为String型,value为Interger型
str=in.next();
while(!str.equals("!!!!!"))                                            //出现"!!!!!"的时候结束
if(!map.containsKey(str)) map(str,1)                                   //当str对应的key不存在时,新建一个map(str,1),value为1
else map(str,value+1)                                                  //当str对应的key存在时,value值在原来的基础上+1
Collections.sort(list, new Comparator<Map.Entry<String, Integer>>()    //使用匿名内部类对map进行排序
System.out.println(map.size())
for(i=0;i<10;i++) {System.out.println(list.get(i));}

2.2 实验总结
这一题的难点应该是按照单词出现频率排序,
那么我们就使用Map类来存储一段英文中的单词(key)和出现频率(value)。
然后需要使用匿名内部类实现copareTo接口,进而实现先频率,后单词的排序方法。

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

new map1(String,Set),map2(String,Integer)                            
while(!s.equals("!!!!!"))                                     
map1.put(s1,set);map2.put(s1,r);                           
for (map1遍历) {System.out.println(a);}     
set1.retainAll(map1.get(s1))               
System.out.println("line " + a + ":" + map2.get(a));

3.3 实验总结
这一题看不太懂,所以不太会做,不过感觉主要思路还是在map之中存放单词信息和所在行的信息,请教了一下做出来的同学。
就是不太能弄的清楚

这里使用了map1和map2,我也不太懂得map2是用来干什么的。。。

Q5.泛型类:GeneralStack(题目5-5)
5.1 截图你的提交结果(出现学号)
5.2 GeneralStack接口的代码

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

5.3 结合本题,说明泛型有什么好处
泛型在定义一个类的时候,不需要立刻确定它的类型,减少代码中的类型强制转换,也可以避免代码出错。

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

3.1. 码云代码提交记录

3.2. PTA实验

函数(4-1),编程(5-3,5-4,5-5)
实验总结已经在作业中体现,不用写。

posted @ 2017-04-15 14:43  forgetaboutJ  阅读(161)  评论(2编辑  收藏  举报