Iterator<String> it=list.iterator(); while(it.hasNext()){ String x=it.next(); if(x.equals(str)){ it.remove();
在进行删除操做时,若是直接用list遍历,会出现答案错误的状况,因此须要迭代器进行操做,由于迭代器删除是,是不会改变迭代的下标的。
java
首先将输入的单词取出来放入map中,而且统计他们的出现次数;接着使用Comparator接口自定义一个排序方法,而后按照题目的要求输出总词数以及排名前十的词就能够了。
ide
将单词放入map中,须要分类处理,若是map中已经有了,那么只要value加一就能够了,若是没有,那就map.put(key,1);接着就是Comparator接口进行排序,先是比较次数o2.getValue()-o1.getValue(),若是相等,那就比较key,o1.getKey().compareTo(o2.getKey())
函数
1.创建TreeMap,Map<String,ArrayList<Integer>> word=new TreeMap<String,ArrayList<Integer>>(); 2.接着建立一个ArrayList,将输入的句子存放进去。 3.而后输出每一个单词出现的段数。 4.判断输入的单词属于哪一行,输出段数而且将这短话也打印出来。
学习
本题主要使用了TreeMap,把输入的语段放入ArrayList中,查找出全部单词对应的段落。在统计单词的时候,要一段一段的读取,并自定义用空格对单词区分,由于后面须要对单词所在行数查询。
测试
编写一个Student类,属性为:this
private Long id;
private String name;
private int age;
private Gender gender;//枚举类型
private boolean joinsACM; //是否参加过ACM比赛
建立一集合对象,如List,内有若干Student对象用于后面的测试。code
package jihe; import java.util.ArrayList; import java.util.Set; enum Gender { female, male } class Student { private Long id; private String name; private int age; private Gender gender;//枚举类型 private boolean joinsACM; //是否参加过ACM比赛 public Student(Long id, String name, int age, Gender gender, boolean joinsACM) { this.id = id; this.name = name; this.age = age; this.gender = gender; this.joinsACM = joinsACM; } @Override public String toString() { return "Student [id=" + id + ", name=" + name + ", age=" + age + ", gender=" + gender + ", joinsACM=" + joinsACM + "]"; } public Student find() { if(this.id>10L&&this.name.equals("zhang")&&this.age>20&&this.gender==Gender.female&&this.joinsACM) { Student str=new Student(this.id,this.name,this.age,this.gender,this.joinsACM); return str; } else return null; } } public class test { public static void main(String[] args) { ArrayList<Student> list=new ArrayList<Student>(); Student x=new Student(20L,"zhang",21,Gender.female,true); Student y=new Student(11L,"li",20,Gender.male,false); Student z=new Student(9L,"zhang",21,Gender.female,true); Student d=new Student(12L,"zhang",22,Gender.female,true); list.add(x); list.add(y); list.add(z); list.add(d); for (Student student : list) { System.out.println(student.find()); } } }
须要增长 student != null,对student是否非空进行判断
对象
好处:例如在pta题目5-1所定义IntegerStack接口,只能用于存放Integer类型的数据,很不方便。可是若是使用泛型,在定义类时,没必要直接就决定类的类型,在main中调用时,能够建立多个不一样类型的类,方便。
blog
基础参考文件GenericMain,在此文件上进行修改。排序
题目集:jmu-Java-05-集合
3.1. 码云代码提交记录
在码云的项目中,依次选择“统计-Commits历史-设置时间段”, 而后搜索并截图