【发布时间】:2015-11-04 00:35:49
【问题描述】:
我正在尝试查找用户提交到程序中的所有整数的出现次数,到目前为止,这就是我得到的。它有效,但我认为这不是一种合法的方式,有什么方法可以在不使用list[10]=9999; 的情况下尝试做到这一点?因为如果我不这样做,它会显示超出边界错误。
import java.util.*;
public class OccurrencesCount
{
public static void main(String[] args)
{
Scanner scan = new Scanner(System.in);
int[] list = new int[11];
//Accepting input.
System.out.print("Enter 10 integers between 1 and 100: ");
for(int i = 0;i<10;i++){
list[i] = scan.nextInt();
list[10] = 9999;
}
//Sort out the array.
Arrays.sort(list);
int count = 1;
for(int i = 1;i<11;i++){
if(list[i-1]==list[i]){
count++;
}
else{
if(count<=1){
System.out.println(list[i-1] + " occurs 1 time.");
}
else{
System.out.println(list[i-1] + " occurrs " + count + " times.");
count = 1;
}
}
}
}
}
【问题讨论】:
-
你的 int 数组的大小是 11 的原因,但你在 for 循环中只循环了 10 次?
-
设置列表[10] = 9999 能给你带来什么?
-
我必须在数组中放入一个额外的值,这样当涉及到下面的 if 语句时,我就不会得到一个超出边界的错误语句
标签: java