Рубрики
Без рубрики

Ява – Проверить, содержит ли массив определенное значение?

– Java – Проверить, содержит ли массив определенное значение?

Примеры Java для проверки, содержит ли массив (строковый или примитивный тип) определенные значения, обновленные с помощью API-интерфейсов Java 8 stream.

1. Строковые массивы

1.1 Проверьте, содержит ли строковый массив определенное значение “A”.

package com.mkyong.core;

import java.util.Arrays;
import java.util.List;

public class StringArrayExample1 {

    public static void main(String[] args) {

        String[] alphabet = new String[]{"A", "B", "C"};

        // Convert String Array to List
        List list = Arrays.asList(alphabet);
        
        if(list.contains("A")){
            System.out.println("Hello A");
        }

    }

}

Выход

Hello A

В Java 8 вы можете сделать это:

	// Convert to stream and test it
	boolean result = Arrays.stream(alphabet).anyMatch("A"::equals);
	if (result) {
		System.out.println("Hello A");
	}

1.2 Пример проверки, содержит ли строковый массив несколько значений:

package com.mkyong.core;

import java.util.Arrays;
import java.util.List;

public class StringArrayExample2 {

    public static void main(String[] args) {

        String[] alphabet = new String[]{"A", "C"};

        // Convert String Array to List
        List list = Arrays.asList(alphabet);

        // A or B
        if (list.contains("A") || list.contains("B")) {
            System.out.println("Hello A or B");
        }

        // A and B
        if (list.containsAll(Arrays.asList("A", "B"))) {
            System.out.println("Hello A and B");
        }

        // A and C
        if (list.containsAll(Arrays.asList("A", "C"))) {
            System.out.println("Hello A and C");
        }

    }

}

Выход

Hello A or B
Hello A and C

2. Примитивные Массивы

2.1 Для примитивного массива, такого как int[] , вам нужно выполнить цикл и проверить условие вручную:

package com.mkyong.core;

import java.util.Arrays;
import java.util.List;

public class PrimitiveArrayExample1 {

    public static void main(String[] args) {

        int[] number = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};

        if(contains(number, 2)){
            System.out.println("Hello 2");
        }

    }

    public static boolean contains(final int[] array, final int v) {

        boolean result = false;

        for(int i : array){
            if(i == v){
                result = true;
                break;
            }
        }

        return result;
    }

}

Выход

Hello 2

2.2 С Java 8 кодирование намного проще~

package com.mkyong.core;

import java.util.stream.IntStream;
import java.util.stream.LongStream;

public class TestDate {

    public static void main(String[] args) {

        int[] number = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};

        //Java 8
        boolean result = IntStream.of(number).anyMatch(x -> x == 4);

        if (result) {
            System.out.println("Hello 4");
        } else {
            System.out.println("Where is number 4?");
        }

        long[] lNumber = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};

        boolean result2 = LongStream.of(lNumber).anyMatch(x -> x == 10);

        if (result2) {
            System.out.println("Hello 10");
        } else {
            System.out.println("Where is number 10?");
        }

    }

}

Выход

Hello 4
Hello 10

Оригинал: “https://mkyong.com/java/java-check-if-array-contains-a-certain-value/”