Как проверить, находится ли целое число во вложенном массиве? - PullRequest
0 голосов
/ 20 ноября 2011

Я просмотрел множество различных статей, и мне еще предстоит найти решение, которое работает. Я пробовал: Array, Arrays, ArrayUtil и импорт java.lang.Object.org.apache.commons.lang.ArraysUtils; Однако ничего не сработало. Array, Arrays и ArrayUtil до того, как "contains ()" приводит к ошибке "не может найти символьную переменную (Array / Arrays / ArrayUtil)", импорт java.lang.Object.org.apache.commons.lang.ArraysUtils приводит к ошибке "не может найти символ: класс org "

http://pastebin.com/Dmwnf8FT

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

1 Ответ

0 голосов
/ 20 ноября 2011

Вам просто нужно:

import org.apache.commons.lang.ArrayUtils;

вместо java.lang.Object.

Вам также необходимо убедиться, что ссылка на банку находится на вашем пути к классам.Если вы используете maven, вы можете добавить следующую зависимость в ваш pom:

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

Edit:

Вот пример кода, который вернет 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;
    }
}
...