繁体   English   中英

java比较数组元素

[英]java compare array elements

我在考试时遇到问题。 我有两个数组:int[] a, int[] b,带有随机值。 如果 b 的两个元素大于 a 的每个元素,则 E1 返回真。 我如何写“b 的两个元素大于 a 的每个元素”? 我可以这样写“b 的一个元素大于 a 的每个元素”:

public static boolean e1(int[] a, int[] b){
    boolean ris = false;
    boolean ogniA = true;
    int i = 0;
    if(a != null && a.length != 0){ 
        while(ogniA && i<a.length){
            boolean es1= false;
            boolean es2 = false;
            int j = 0;

            if(b!= null && b.length != 0){  
                while(!es1 && j < b.length){
                    if(j%2!=0){
                        es1 = a[i] < b[j];
                    } 

                    j++;

                }ris = es1 ;
            }
            i++;
        }
    }
    return ris;

我需要这样的东西。 感谢帮助。

所以我会解决这个问题,把它分成更小的问题。 首先,您需要在第一个数组中找到 2 个最大值。 我认为这应该是抽象的并且适用于每个数组

代码(使用 Andronicus 的示例):

“如果 b 的两个元素大于 a 的每个元素,则 E1 返回真”

基本上你需要数组 B 的第二个较大值和数组 A 的较大值

int[] a = {3, 5, 7, 9};
int[] b = {2, 4, 3, 10, 11};

int secondGreatestOfB = IntStream.of(b).boxed()
            .sorted(Comparator.reverseOrder())
            .limit(2)
            .sorted(Comparator.naturalOrder())
            .limit(1)
            .findFirst().orElse(0);

System.out.println(areTheTwoBiggestNumbersOfArrayBbiggerThanAllValuesFromArrayA(a, secondGreatestOfB));

private static boolean areTheTwoBiggestNumbersOfArrayBbiggerThanAllValuesFromArrayA(int[] a, int secondGreatestOfArrayB) {
    return secondGreatestOfArrayB > IntStream.of(a).max().orElse(0);
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

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