Java中检查值是否存在于数组中的4种详细方法

 更新时间:2023年08月24日 11:09:56   作者:Smile sea breeze  
这篇文章主要给大家介绍了关于Java中检查值是否存在于数组中的4种详细方法,相信大家在操作Java的时候经常会要检查一个数组(无序)是否包含一个特定的值,需要的朋友可以参考下

1.介绍

在 Java 中,有许多方法可以检查此数组中是否存在特定元素。

  • 使用线性搜索方法
  • 使用二进制搜索方法
  • 使用 List.contains() 方法
  • 使用 Stream.anyMatch() 方法

2.方法

1)使用线性搜索方法

时间复杂度:O(N) 辅助空间:O(1)

for (int element : arr) {
    if (element == toCheckValue) {
        return true;
    }
}
public class T1 {
    private static void check(int[] arr, int toCheckValue)
    {
        boolean test = false;
        for (int element : arr) {
            if (element == toCheckValue) {
                test = true;
                break;
            }
        }
        System.out.println("Is " + toCheckValue
                + " present in the array: " + test);
    }
    public static void main(String[] args) {
        int arr[] = { 5, 1, 1, 9, 7, 2, 6, 10 };
        int toCheckValue = 7;
        System.out.println("Array: "+ Arrays.toString(arr));
        check(arr, toCheckValue);
    }
}

Array: [5, 1, 1, 9, 7, 2, 6, 10]
Is 7 present in the array: true

2)使用二进制搜索方法

通过将搜索间隔重复分成两半来搜索排序数组。从覆盖整个数组的区间开始。如果搜索关键字的值小于区间中间的项,则将区间缩小到下半部分。否则,将其缩小到上半部分。反复检查,直到找到值或区间为空。
public static int binarySearch(data_type arr, data_type key)时间复杂度:O(nlog(n)) 辅助空间:O(1)

public class T1 {
    private static void check(int[] arr, int toCheckValue) {
        Arrays.sort(arr);
        int res = Arrays.binarySearch(arr, toCheckValue);
        boolean test = res >= 0 ? true : false;
        System.out.println("Is " + toCheckValue
                + " present in the array: " + test);
    }
    public static void main(String[] args) {
        int arr[] = { 5, 1, 1, 9, 7, 2, 6, 10 };
        int toCheckValue = 7;
        System.out.println("Array: "+ Arrays.toString(arr));
        check(arr, toCheckValue);
    }
}

Array: [5, 1, 1, 9, 7, 2, 6, 10]
Is 7 present in the array: true

3)使用 List.contains() 方法

Java 中的 List contains() 方法用于检查指定元素是否存在于给定列表中。
public boolean contains(Object)

public class T1 {
    private static void check(Integer[] arr, int toCheckValue) {
        boolean test= Arrays.asList(arr) .contains(toCheckValue);
        System.out.println("Is " + toCheckValue
                + " present in the array: " + test);
    }
    public static void main(String[] args) {
        Integer arr[] = { 5, 1, 1, 9, 7, 2, 6, 10 };
        int toCheckValue = 7;
        System.out.println("Array: "+ Arrays.toString(arr));
        check(arr, toCheckValue);
    }
}

Array: [5, 1, 1, 9, 7, 2, 6, 10]
Is 7 present in the array: true

4)使用 Stream.anyMatch() 方法

boolean anyMatch(Predicate<T> predicate)T 是输入类型
如果有任何元素,则该函数返回 true , 否则为假。

public class T1 {
    private static void check(int[] arr, int toCheckValue)
    {
        // 检查指定元素是否 
        // 是否存在于数组中 
        // 使用 anyMatch() 方法
        boolean test
                = IntStream.of(arr)
                .anyMatch(x -> x == toCheckValue);
        System.out.println("Is " + toCheckValue
                + " present in the array: " + test);
    }
    public static void main(String[] args) {
        int arr[] = { 5, 1, 1, 9, 7, 2, 6, 10 };
        int toCheckValue = 7;
        System.out.println("Array: "+ Arrays.toString(arr));
        check(arr, toCheckValue);
    }
}

Array: [5, 1, 1, 9, 7, 2, 6, 10]
Is 7 present in the array: true

总结

到此这篇关于Java中检查值是否存在于数组中的4种详细方法的文章就介绍到这了,更多相关Java检查值是否在数组内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • spring cache注解@Cacheable缓存穿透详解

    spring cache注解@Cacheable缓存穿透详解

    这篇文章主要介绍了spring cache注解@Cacheable缓存穿透详解,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-12-12
  • 使用MyBatis快速生成代码的几种方法

    使用MyBatis快速生成代码的几种方法

    本文主要介绍了如何使用MyBatis快速生成代码的几种方法,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2023-12-12
  • Java网络编程之简易聊天室的实现

    Java网络编程之简易聊天室的实现

    这篇文章主要为大家详细介绍了如何利用Java语言实现一个简易聊天室功能,可以实现运行客户端和连接服务器,文中的示例代码讲解详细,需要的可以了解一下
    2022-10-10
  • 关于@PostConstruct、afterPropertiesSet和init-method的执行顺序

    关于@PostConstruct、afterPropertiesSet和init-method的执行顺序

    这篇文章主要介绍了关于@PostConstruct、afterPropertiesSet和init-method的执行顺序,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-09-09
  • MyBatis框架关联映射实例详解

    MyBatis框架关联映射实例详解

    这篇文章主要介绍了MyBatis框架关联映射,关系映射主要处理复杂的SQl查询,如子查询,多表联查等复杂查询,应用此种需求时可以考虑使用,需要的朋友可以参考下
    2022-11-11
  • 一篇文章带你入门Springboot沙箱环境支付宝支付(附源码)

    一篇文章带你入门Springboot沙箱环境支付宝支付(附源码)

    蚂蚁沙箱环境 (Beta) 是协助开发者进行接口功能开发及主要功能联调的辅助环境。沙箱环境模拟了开放平台部分产品的主要功能和主要逻辑
    2021-06-06
  • 使用SpringBoot获取resources文件路径

    使用SpringBoot获取resources文件路径

    这篇文章主要介绍了使用SpringBoot获取resources文件路径,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-06-06
  • Java(SpringBoot)项目打包(构建)成Docker镜像的几种常见方式

    Java(SpringBoot)项目打包(构建)成Docker镜像的几种常见方式

    在对Spring Boot应用程序进行Docker化时,为应用程序选择正确的基础镜像非常重要,下面这篇文章主要给大家介绍了关于Java(SpringBoot)项目打包(构建)成Docker镜像的几种常见方式,需要的朋友可以参考下
    2023-12-12
  • Java 详解Map集合之HashMap和TreeMap

    Java 详解Map集合之HashMap和TreeMap

    本章具体介绍了HashMap、TreeMap两种集合的基本使用方法和区别,图解穿插代码实现。 JAVA成仙路从基础开始讲,后续会讲到JAVA高级,中间会穿插面试题和项目实战,希望能给大家带来帮助
    2022-03-03
  • java使用ffmpeg处理视频的方法

    java使用ffmpeg处理视频的方法

    这篇文章主要介绍了java使用ffmpeg处理视频的方法,本文给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-03-03

最新评论