Java如何将数组的元素与同一数组的所有其他元素进行比较

时间:2014-10-17 10:20:00

标签: java arrays for-loop

假设我们有一个整数元素x [N]的数组。如何知道元素x [1]是否大于或等于同一数组的所有其他元素? 我使用for循环,但它不起作用,因为我想检查一个元素是否比所有其他元素更大。如果我使用for循环,相反,如果元素大于其他元素之一,它会做一些事情,这对我的目的是错误的。你能帮我吗?

这是我的意思的一个例子:

for(int i = 0; i < num && i!= j; i++) {
    if(elementiInseriti[j] >= elementiInseriti[i]) {
         do something; 
    }
}

3 个答案:

答案 0 :(得分:1)

你可以做到

int x = 1; //position you wanna compare
boolean state = true;
for(int i = 0; i < elementiInseriti.length; i++) {
    if(elementiInseriti[x] < elementiInseriti[i]) {
        state = false;
        break; //no need to check for other elements coz at least 1 lesser than the conpared
    }
}
if(state)
    // do your stuffs

答案 1 :(得分:0)

使用布尔变量

        boolean doSomething = true;
        for(int i = 0; i < num && doSomething; i++) {
            if(elementiInseriti[j] < elementiInseriti[i]) {  
               doSomething = false;
            }
        }
        if (doSomething)
            // do something

如果elementiInseriti[j]小于任何其他元素,则该标志将为false,您将不会执行任何操作。

答案 2 :(得分:0)

基本思想是,只要给定元素最大,您就需要遍历整个数组并累积boolean。 请注意,不能i!=j循环中具有for条件,因为这会过早终止循环,并且仅在之前检查元素 它在数组中:

boolean isGreatest = true;
for(int i = 0; i < elementiInseriti.length && isGreatest; i++) {
    if (i != j && elementiInseriti[j] < elementiInseriti[i]) {
         isGreatest = false;
    }
}

if (isGreatest) {
    // do something;
}