首页 > 编程语言 >Java检查值是否存在于数组中的3种方法

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

时间:2023-11-11 11:22:21浏览次数:45  
标签:arr Java 检查 int Arrays toCheckValue 数组 test public

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

1)使用线性搜索方法
时间复杂度:O(N) 辅助空间:O(1)

for (int element : arr) {

    if (element == toCheckValue) {

        return true;

    }

}

示例代码:

import java.util.Arrays;
 
public class Demo {
    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)使用 List.contains() 方法
Java 中的 List contains() 方法用于检查指定元素是否存在于给定列表中。

public boolean contains(Object)

示例代码:

import java.util.Arrays;
 
public class Demo {
    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

3)使用 Stream.anyMatch() 方法
boolean anyMatch(Predicate<T> predicate)

T 是输入类型

如果有任何元素,则该函数返回 true , 否则为假。

示例代码:

import java.util.Arrays;
import java.util.stream.IntStream;
 
public class Demo {
    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
————————————————
版权声明:本文为CSDN博主「西晋的no1」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/xijinno1/article/details/132114694

标签:arr,Java,检查,int,Arrays,toCheckValue,数组,test,public
From: https://www.cnblogs.com/csjoz/p/17825686.html

相关文章

  • Java零基础入门-表达式
    前言Java作为一门面向对象的编程语言,具有广泛的应用场景,尤其在后端开发方面,具有非常高的市场需求。因此,Java的学习对于初学者来说是非常重要的。本文将从表达式的角度,帮助Java零基础的读者了解Java的基本语法,为进一步学习打下良好的基础。摘要本文主要讲解Java中表达式的概念和......
  • concat方法: 用于连接两个或多个数组。该方法不会改变现有的数组,而仅仅会返回被连接数
    下列哪个方法不能改变自身数组?AspliceBconcatCsortDpoppop方法:用于删除并返回数组的最后一个元素,把数组长度减1,并且返回它删除的元素的值。如果数组已经为空,则pop()不改变数组,并返回undefined值。splice方法:向/从数组中添加/删除项目,然后返回被删除的项目,该方法会改变原......
  • 关于W3C制定的 JavaScript 标准事件模型,先事件捕获从windows > document 往下级直到
    关于W3C制定的JavaScript标准事件模型,先事件捕获从windows>document往下级直到特定的事件节点,然后进行事件处理,再事件冒泡,从特定节点往上级,这个完整的过程dom2规定的事件流包括3个阶段:①事件捕获,②处于目标阶段(事件处理),③事件冒泡阶段。DOM2级事件"规定事件流的三个阶......
  • java-数组
    第六章数组数组的引入【1】习题引入:1importjava.util.Scanner;2publicclassTestArray01{3publicstaticvoidmain(String[]args){4//功能:键盘录入十个学生的成绩,求和,求平均数:5//定义一个求和的变量:6......
  • java-方法的定义/调用/重载
    第5章方法的定义/调用/重载 方法的定义和调用【1】什么是方法?方法(method)就是一段用来完成特定功能的代码片段,类似于其它语言的函数(function)。方法用于定义该类或该类的实例的行为特征和功能实现。方法是类和对象行为特征的抽象。方法很类似于面向过程中的函数。面向过......
  • 树状数组(2)-- 逆序对计算
    题干引入洛谷P1908LeedCodeLCR170逆序数(和线代中定义一致)在一个数字序列中,后面比前面小的数字个数之和如84591233的逆序数为:6+4+4+4+0+0+0+0=18使用一种办法求出逆序数树状数组解法根据上面序列中的数组出现次数,可以构建如下桶:ID1234567......
  • java-流程控制
    第四章流程控制引入【1】流程控制的作用:流程控制语句是用来控制程序中各语句执行顺序的语句,可以把语句组合成能完成一定功能的小逻辑模块。【2】控制语句的分类:控制语句分为三类:顺序、选择和循环。“顺序结构”代表“先执行a,再执行b”的逻辑。“条件判断结构”代表“如果......
  • slice不改变原数组,返回截取的数组,slice(start,end), splice改变原数组splice(start,h
    执行以下程序,输出结果为()vara=[1,2,3];varb=a.slice();b.push(4);console.log(a)[1,2,3]array.slice(begin,end)将返回一个由begin和end决定的原数组的浅拷贝,其中,begin和end参数均是可选参数,如果省略begin,则默认从索引值为0开始提取,如果省略end,则默认提取到数组最后一......
  • 与其他 IEEE 754 表示浮点数的编程语言一样,JavaScript 的 number 存在精度问题,比如 0.
    与其他IEEE754表示浮点数的编程语言一样,JavaScript的number存在精度问题,比如0.2+0.4的结果是0.6000000000000001。以下选项中,能得到0.6的是?AparseFloat(0.2+0.4)BparseFloat((0.2+0.4).toFixed(1))CMath.round(0.2+0.4)DparseFloat((0.2+0.6).toPrec......
  • call与apply的第一个参数都为this的指向,call后面的参数为传入的参数列表,apply为参数
    【摘自JavaScript高级程序设计】函数还有两个方法:apply()和call()。这两个方法都会以指定的this值来调用函数,即会设置调用函数时函数体内this对象的值。apply()方法接收两个参数:函数内this的值和一个参数数组。第二个参数可以是Array的实例,但也可以是arguments对象。来看下面的例......