【问题标题】:Java how to compare an element of an array with all the other elements of the same arrayJava如何将数组的元素与同一数组的所有其他元素进行比较
【发布时间】:2014-10-17 10:20:00
【问题描述】:

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

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

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

【问题讨论】:

  • 你想要排序还是什么?

标签: java arrays for-loop


【解决方案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

【讨论】:

    【解决方案2】:

    使用布尔变量

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

    如果elementiInseriti[j] 小于任何其他元素,则标志将为假,您将不会做任何事情。

    【讨论】:

      【解决方案3】:

      基本思想是,只要给定元素最大,您就需要遍历整个数组并累积一个boolean。 请注意,您不能在 for 循环中使用 i!=j 条件,因为这将提前终止循环,并且仅根据数组中的元素 before 检查元素:

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2021-02-05
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多