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)
实验总结已经在作业中体现,不用写。