标签:mit 面向 src 依次 while循环 lis 测试 ring 技术
这次改一个方式,就不用思维导图了,用图文结合方式来总结
1. Map三视图
* 键值: Set
2. 遍历键/值对集
代码见1.2中所述
3. Java8新增语法
图。。。。
4. 删除指定元素
总结见下1.2
Map<String,String> map = new HashMap<String,String>();
for(Map.Entry<String, String> entry:map.entrySet()){
String key = entry.getKey();
Employee value = entry.getValue();
System.out.println("key="+key+", value = "+value);
}
添加进入之后
for(int i = 0;i<integerList.size();i++){
if(integerList.get(i)<3)
integerList.remove(i);
}
这样会出现遍历跳过元素的现象,故改用以下方式:
for (int i=list.size()-1;i>=0;i--) { if((list.get(i)).equals(str)){
list.remove(i);
}
}
采用倒序方式来逐个删除不会出现跳过元素现象。
本次作业题集集合
答:
本题中
/以空格(单个或多个)为分隔符,将line中的元素抽取出来,放入一个List/
public static List
这个函数,重点在于将以空格为分隔符的元素取出放入List时,用str.next()方法来获取空格前的元素,同时Scanner不仅可以获取控制台输入的内容,还可以读取字符串,如:Scanner sc = new Scanner(line); 其中line是字符串
接下来的函数
/在list中移除掉与str内容相同的元素/
public static void remove(List
有两种删除元素方法:
1. 方法一
for (int i=list.size()-1;i>=0;i--) { if((list.get(i)).equals(str)){
list.remove(i);
}
}
采用倒序方式来逐个删除重复元素,且杜绝了删除后下标改变导致的跳过元素问题。
PS:注意倒序时最大下标为list.size()-1
2. 方法二
for (int i = 0; i < list.size(); i++) {
if(list.get(i).equals(str)){
list.remove(i);
i--;
}
对比方法一,这是常规思考方法——正序遍历,但是容易出现跳过元素的问题。
解决方法:
将下边值i每次判断之后就‘i--‘退回前一个跳过的元素上即可。
Map<String,Integer> wordmap = new TreeMap<>();
//创建map对象
while循环下
if(word.equals("!!!!!"))
break
else if(map.countiansKey(word))
map.put(word,map.get(word)+1) //重复+1
else
map.put(word,1) //未重复为初始的1
List<Map.Entry<String, Integer>> list = new ArrayList<Map.Entry<String, Integer>>(wordmap.entrySet());
//改成list对象
Collections.sort(list,new Comprartor<Map.Entry<String,Integer>>() ) {
//对第二个参数进行排序
进行排序比较
}
for(遍历list前十个)
list.get(i).toString() //输出
答:
本题关键在于怎么在遍历的同时把单词放到Map对象中去。首要要判断是否“!!!!!”结尾,在此基础上,若存在就把value值+1,否则加入此单词,value值=1.
在然后就是将其转换为Collection对象来进行排序,这就用到了之前的comparator
本题较难,做不出来不要紧。但一定要有自己的思考过程,要有提交结果。
答:
Map<String, ArrayList<Integer>> map = new TreeMap<String, ArrayList<Integer>>();
while (sc.hasNextLine()) {
if (str.equals("!!!!!"))
break;
else
if (str.length() == 0)
continue;
str1=str.split(" +");
for 遍历数组str1
if (map.get(str1[j]) == null)
添加到值中
else
不重复则添加值中
}
for 遍历输出(遍历输出函数方法见上1.2选作题)
f(wordmap.get(word) == null)
print("found 0 results")
else
print(要求输出的格式)
答:
这道题注意,第一次的放入map对象时,要对内容进行备份,添加到List对象中以便后续查询的输出。
对输入的内容进行读取时,可以用nextline()读取整行,方便计算行数,其次对字符串整个进行str.split(" +");操作,形成字符数组方便逐个判断存放map对象中。
编写一个Student类,属性为:
private Long id;
private String name;
private int age;
private Gender gender;//枚举类型
private boolean joinsACM; //是否参加过ACM比赛
创建一集合对象,如List
题集jmu-Java-05-集合之GeneralStack
public interface GeneralStack<E> {
E push(E item);
E pop();
E peek();
public boolean empty();
public int size();
}
答:
在之前作业中的ArrayListIntegerStack里,放进栈中的元素只能是Integer类型,其他类型元素则报错;现在的泛型则规避了这个局限性,使对于栈来说,不管内部存放的是什么类型的数据,基本操作与元素的具体类型都无关。
基础参考文件GenericMain,在此文件上进行修改。
集合实验文件中的第07次实验(集合).doc文件,里面的题目6.
题目集:jmu-Java-05-集合
在码云的项目中,依次选择“统计-Commits历史-设置时间段”, 然后搜索并截图
需要有两张图(1. 排名图。2.PTA提交列表图)
需要将每周的代码统计情况融合到一张表中。
自己的目标能实现吗?
尝试从以下几个维度评估自己对Java的理解程度
维度 程度
语法 PTA的题目已经能轻松搞定,没有什么难得倒我的语法问题
面向对象设计能力 能熟练使用面向对象思想为所要解决的问题建模
应用能力 可以使用Java编写一些实用的小工具
至今为止代码行数 5000
有n门课程,每个学生对每门课程都有几个不懂的问题(每题都有标号)。教师期望对所有学生的问题进行归类,首先对问题按课程分类,在某类中又将同一个学生的题目归类在一起。现有的操作流程,是每个学生把自己的各科目中不懂得题目按课程分类号后发给学习委员,学习委员进行统一汇总。现在希望编写一个程序,帮助学习委员分类,并统计每门课程中哪些题目不懂率最高。尝试写出解决该问题的大概步骤?每个学生发给学习委员的文件内容应遵循一定规范方便程序处理,尝试写出该规范。
201621123037 《Java程序设计》第9周学习总结
标签:mit 面向 src 依次 while循环 lis 测试 ring 技术
原文地址:http://www.cnblogs.com/qin-yu/p/7840789.html