Java:搜索未排序的整数数组并返回更多的数字

时间:2016-12-10 03:14:03

标签: java arrays loops methods java.util.scanner

我一直在尝试创建一个搜索未排序整数数组的方法,但我遇到了一些我无法解决的问题。我想允许程序的用户输入一个整数值,并让程序返回大于搜索到的整数值的数字量。我似乎遇到的问题是处理main方法中的变量,使用scanner进行搜索,以及如何修复我的循环以进行此运行。

我真的很感激帮助!

我的代码:

y = sin(x)

3 个答案:

答案 0 :(得分:2)

我必须重写你的arrayIndex方法。从该方法中的用户输入,或者您可以将输入传递给arrayIndex方法。

只计算大于输入的数字,然后返回结果。

public static int arrayIndex(int[] a) {

    Scanner user_input = new Scanner( System.in );
    System.out.println("Enter a value to search: ");
    int userSearch = user_input.nextInt(); 

    int numberOfCount = 0;

    for(int i = 0; i < a.length; i++) {
        if(a[i] > userSearch) {
            ++numberOfCount;
        }
    }
    return numberOfCount;
}

答案 1 :(得分:2)

这实际上非常简单。我会解释一下。

public static int arrayIndex(int userSearch, int[] a) {
        Scanner user_input = new Scanner( System.in );
        int count = 0;//this will track your data
        System.out.println("Enter a value to search: ");
        userSearch = user_input.nextInt(); // Use nextInt()

        for(int i = 0; i < a.length; i++) {
            if(a[i] > userSearch) {
                 count++;//increments when the if statement is true
            }
        }
        return count;//returns your desired data
    }

答案 2 :(得分:0)

您可以将调用更改为arrayIndex:

 int search = arrayIndex( tmax); // no need to pass userSearch:

以下是使用扫描仪读取整数的方法:

Scanner scanner = new Scanner(System.in);
int userSearch = scanner.nextInt();

但等等:还有更多。如果您使用java 8流,您的代码可以清理一下:

// Returns the maximum value in the array
public static int arrayMax(int[] a) {
    return Arrays.stream(a).max().getAsInt();
}
// Returns the minimum value in the array
public static int arrayMin (int[] a) {
    return Arrays.stream(a).min().getAsInt();
}
public static double arrayAverage(int[] a) {
    return Arrays.stream(a).average().getAsDouble();
}

public static long arrayIndex( int[] a) {

    System.out.println("Enter a value to search: ");
    Scanner scanner = new Scanner(System.in);
    int userSearch = scanner.nextInt();

    return Arrays.stream(a).filter(n -> n > userSearch).count();
}

看看并享受!