【问题标题】:How to check an array of an array for an object如何检查数组的数组中的对象
【发布时间】:2015-04-04 01:32:47
【问题描述】:

我想检查一个二维数组是否包含一个对象,你会怎么做?

【问题讨论】:

    标签: java arrays multidimensional-array


    【解决方案1】:

    您必须使用嵌套循环。假设你有一个Integer 的数组,并且你想检查一个特定的数字是否在数组中:

    static boolean contains(Integer[][] array, Integer wantedInt) {
        // For each sub-array
        for (int i = 0; i < array.length; i++) {
            // For each element in the sub-array
            for (int j = 0; j < array[i].length; j++) {
                // If the element is the wanted one
                if (array[i][j].equals(wantedInt)) {
                    // We've found it
                    return true;
                }
            }
        }
        // We didn't find the wanted number
        return false;
    }
    

    您可以使用相同的逻辑通过泛型搜索任何对象类型:

    static <T> boolean contains(T[][] array, T wantedObj) {
        for (int i = 0; i < array.length; i++) {
            for (int j = 0; j < array[i].length; j++) {
                if (array[i][j].equals(wantedObj)) {
                    return true;
                }
            }
        }
        return false;
    }
    

    【讨论】:

      【解决方案2】:
       Object objects[][] = new Object[100][];
       Object objectToLocate = null;
           outerloop:
           for (Object[] object : objects) {
              for (Object o : objects) {
                  if (o == objectToLocate) {
                      System.out.println("Found it!");
                      break outerloop;
                  }
              }
          }
      

      【讨论】:

        【解决方案3】:

        这是一个对象的解决方案:

            Object[][] twoDArray = new Object[x][y];
        
            // Fill array
        
            for (int i = 0; i < twoDArray.length; ++i)
            {
                for (int j = 0; j < twoDArray[i].length; ++j)
                {
                    if (twoDArray[i][j].equals(someObject))
                    {
                        // do something
                    }
                }
            }
        

        【讨论】:

          猜你喜欢
          • 2017-03-22
          • 1970-01-01
          • 1970-01-01
          • 2019-07-26
          • 2019-05-24
          • 2023-03-03
          • 1970-01-01
          • 2019-11-03
          • 2019-05-19
          相关资源
          最近更新 更多