简体   繁体   中英

Java ArrayList: Utilising ArrayList for print message

In my Java program I have an ArrayList. What I want to do is print a number at the bottom that will say 'x amount of people have passed'

System.out.println = ("The amount of people that have more than 40 marks is " + x);

Is it possible to calculate how many numbers of marks will be more than 40 if there are an undetermined amount of marks put in, utilising an ArrayList?

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
}

If the array is already sorted, like you show in your example, then you just have to do a simple search from where you start seeing a particular score, then taking the length of the array and subtracting the position of the element that came from your search.

If the array isn't sorted, sort it and then do the search.

You can do something like :

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;
        }
    }
}

marks is the arraylist and result is desired output.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM