如果它是数组中的值,是否可以打印数字?

Is it possible to print a number ONLY if it is a value in an array? (Java)

本问题已经有最佳答案,请猛点这里访问。

我试图弄清楚,只有当一个整型数是一个数值时,是否可以打印出一个整型数。例如:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
import java.util.Random;

public class arrays {
    Random random = new Random();

    public void method () {
        int[] numbers = {1, 2, 3, 4, 5, 6, 7, 8, 9};

        int j = random.nextInt(20);

        if() {
            System.out.println("It is in the array.");
        } else {
            System.out.println("It is not in the array.");
        }
    }
}

我不确定的是,只有当j介于1和9之间时,为了让系统打印"它在数组中",您才会在"if"后面的括号中加上什么。

谢谢!


使用java.util.arrays实用程序类。它可以将数组转换为一个允许您使用contains方法的列表,或者它有一个二进制搜索允许您查找数字的索引,或者-1(如果它不在数组中)。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
import java.util.Arrays;
import java.util.Random;

public class arrays {
    Random random = new Random();

    public void method () {
        int[] numbers = {1, 2, 3, 4, 5, 6, 7, 8, 9};

        int j = random.nextInt(20);

        if( Arrays.binarySearch(numbers, j) != -1 ) {
            System.out.println("It is in the array.");
        } else {
            System.out.println("It is not in the array.");
        }
    }
}

2


1
Arrays.asList(numbers).contains(j)

1
ArrayUtils.contains( numbers, j )

由于对数组进行了排序,因此可以使用arrays.binarysearch,它返回元素的索引(如果元素存在于array中),否则返回-1

1
2
3
4
5
if(Arrays.binarySearch(numbers,j) != -1){
     system.out.println("It is in the array.");
} else {
     system.out.println("It is not in the array.");
}

只是一种更快的搜索方式,您也不需要将您的array转换为list