读取输入的从0-100的数字,输入0结束,统计每个字数出现的次数,出现1次的输出 1 time,出现2次的输出 2 timers
代码如下:
import java.util.*;
public class Test001 {
public static void main(String args) {
Scanner sc=new Scanner(System.in);
int num;
List<Integer> list=new ArrayList<Integer>();//定义list接受输入的数
for(;;){
num=sc.nextInt(); //不断add数字
if (num>0&&num<=100) { //判断
list.add(num);
} else {
if (num==0) { //输入0,结束输入
break;
}
}
}
sc.close();
Iterator<Integer> it=list.iterator(); //iterator遍历输出list
while (it.hasNext()) {
System.out.print(it.next()+" ");
}
System.out.println();
Set<Integer> newset=new HashSet<Integer>(list);
for (Integer temp : newset) { //遍历数组,输出结果
System.out.println(temp + " occurs " + Collections.frequency(list, temp)+ //Collections.frequency 输出重复的次数
((Collections.frequency(list, temp)==1)?" time ":" times ")); //三元运算符判断输出time or times
}
}
}