【问题标题】:How to check if an integer is in a nested array?如何检查整数是否在嵌套数组中?
【发布时间】:2011-11-19 20:28:42
【问题描述】:

我浏览了很多不同的文章,但还没有找到可行的解决方案。我尝试过:Array、Arrays、ArrayUtil 和 import java.lang.Object.org.apache.commons.lang.ArraysUtils;但是没有任何效果。 “contains()”之前的 Array、Arrays 和 ArrayUtil 会导致错误“找不到符号变量 (Array/Arrays/ArrayUtil)”,导入 java.lang.Object.org.apache.commons.lang.ArraysUtils 会导致错误“cannot查找符号:class org"

http://pastebin.com/Dmwnf8FT

http://commons.apache.org/lang/api-2.6/org/apache/commons/lang/ArrayUtils.html

【问题讨论】:

  • 您是否尝试过自己实现该方法?
  • 这是一个更新版本,我的方法尝试失败:link。它给出了错误“缺少返回语句”

标签: java arrays loops if-statement nested


【解决方案1】:

你只需要:

import org.apache.commons.lang.ArrayUtils;

而不是java.lang.Object 部分。

您还需要确保对 jar 的引用位于您的类路径中。如果您使用的是 maven,您可以将以下依赖项添加到您的 pom 中:

<dependency>
  <groupId>commons-lang</groupId>
  <artifactId>commons-lang</artifactId>
  <version>2.4</version>
</dependency>

编辑:

这是一个代码示例,如果整数是否在嵌套数组中,它将返回 true/false。在jdk1.6.0_29下编译,运行正常:

import org.apache.commons.lang.ArrayUtils;

public class Main {

    public static void main(String[] args) {

        int[][] myArray = {{1, 4, 5, 6, 9}, {9, 1, 3, 2}};

        System.out.println(arrayContain(myArray, 2));
    }

    public static boolean arrayContain(int[][] myArray, int valueToFind) {
        if (ArrayUtils.contains(myArray, 1)) return true;

        for (int i = 0; i < myArray.length; i++) {
            if (ArrayUtils.contains(myArray[i], valueToFind)) return true;
        }
        return false;
    }
}

【讨论】:

  • 返回错误“包org.apache.commons.lang不存在”
  • 它似乎对我不起作用。我导入了包;但是它仍然给出错误:“找不到符号:变量 ArrayUtils”或“找不到符号:方法包含”
  • 这可能是语法,因为在 Commons Lang 文档中它给出了:“contains(xxx[], xxx)”作为包含函数;但是,当我使用它时,它会给我带来更多错误。
  • 没关系,我想通了。似乎代码中还有另一个问题。谢谢。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2019-10-10
  • 2023-03-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-06-11
相关资源
最近更新 更多