在我的Java程序中,我有一个ArrayList。我想要做的是在底部打印一个数字,表示'x已经过了多少人'
System.out.println = ("The amount of people that have more than 40 marks is " + x);
如果使用ArrayList输入了不确定的标记数量,是否可以计算出多少个标记数将超过40?
public class test {
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
ArrayList<Integer> marks = new ArrayList<Integer>();
Scanner input = new Scanner(System.in);
// Create a new scanner to use in java
int[] range = { 0,29,39,69,100 };
// A new array is created with the grade boundaries
int[] inRange = new int[boundary.length - 1];
// Indexed from 0 to n-1
int markIn;
// New integer markIn
do {
// This do-while loop calculates the expression after the statements below are exectued at least once
System.out.println("Enter Mark(s):");
// Wait for user input
markIn = input.nextInt();
// markInp value is set as the value entered by user
marks.add(markIn);
for (int a=1 ; a<boundary.length ; a++)
// for loop will take the variable 'a' and compare it with varibale 'boundary', when the condition is satisfied that value of 'a' increments by 1
if (range[a-1] <= markInp && markInp <= range[a]) {
// The boundaries will define the upper and lower limits of the markInp
inRange[a-1]++;
//inRange is incremented by 1
break;
//Exit if
}
} while (markIn <= 100);
// When the mark exceeds 100, the loop is stopped
System.out.println(marks);
input.close();
} // Close the Scanner input
}
答案 0 :(得分:0)
如果数组已经排序,就像您在示例中显示的那样,那么您只需要从开始查看特定分数的位置进行简单搜索,然后获取数组的长度并减去元素的位置。来自你的搜索。
如果数组未排序,请对其进行排序,然后进行搜索。
答案 1 :(得分:0)
您可以执行以下操作:
int result = 0;
if(marks != null)
{
Collections.sort(marks);
for(int i=0;i<marks.size();i++)
{
if(marks.get(i) > 40)
{
result = marks.size() - i;
break;
}
}
}
标记是arraylist,结果是所需的输出。