检查数组是否包含一个整数值

时间:2015-12-06 01:03:01

标签: java arrays

不想使用循环。我尝试了下面的代码,但它不适用于原始类型。

if ( Arrays.asList( myMatrix ).contains( -1 ) )
{
    // do something
}

这里应该做什么?

3 个答案:

答案 0 :(得分:3)

您无法避免代码中的迭代,因为我们需要某种方式来测试数组中的所有元素(至少在找到我们要查找的元素之前)。但为了让您的生活更轻松,请创建一些额外的实用方法,例如(名称可能更好/更具描述性)public static boolean contains(int[] array, int element),它将为我们处理迭代。然后像if(contains(matrix, -1))一样使用它。

在Java 8中,您可以使用IntStream正确处理int[] myMatrix数组(例如Array.asList句柄Integer[] myMatrix)。

因此,您可以使用以下内容:

IntStream.of(myMatrix).anyMatch(i -> i == -1)

答案 1 :(得分:3)

Java应该在contains上有一个方法java.util.Arrays

例如,

Commons Lang has it

所以我会在我已经使用过的库中找到它,或者自己制作一个静态辅助方法(里面有一个简单的循环)。

答案 2 :(得分:2)

"I don't want to use loops" - 你不能总是得到你想要的东西,事实上在这种情况下,使用循环。