Java,简化检查 int 数组是否包含 int

2022-08-31 09:28:17

基本上,我的搭档一直在说,我可以通过使用另一种方式来检查int数组是否包含int,从而使我的代码更短,尽管他不会告诉我它:P是什么。

当前:

public boolean contains(final int[] array, final int key) {
    for (final int i : array) {
        if (i == key) {
            return true;
        }
    }
    return false;
}

也尝试过这个,尽管它总是由于某种原因返回假。

public boolean contains(final int[] array, final int key) {
    return Arrays.asList(array).contains(key);
}

任何人都可以帮我吗?

谢谢。


答案 1

你可以简单地使用Apache Commons Lang库中的ArrayUtils.contains

public boolean contains(final int[] array, final int key) {     
    return ArrayUtils.contains(array, key);
}

答案 2

这是Java 8解决方案

public static boolean contains(final int[] arr, final int key) {
    return Arrays.stream(arr).anyMatch(i -> i == key);
}