不想使用循环。我尝试了下面的代码,但它不适用于原始类型。
if ( Arrays.asList( myMatrix ).contains( -1 ) )
{
// do something
}
这里应该做什么?
答案 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
。
所以我会在我已经使用过的库中找到它,或者自己制作一个静态辅助方法(里面有一个简单的循环)。
答案 2 :(得分:2)
"I don't want to use loops"
- 你不能总是得到你想要的东西,事实上在这种情况下,使用循环。