Проверка, содержит ли массив определенные целые числа

Я создаю массив длиной 10 целых чисел, так что каждое место 0-9 содержит другое целое число 0-9.

У меня возникли проблемы с выяснением того, как проверить, содержит ли массив уже определенное число, и если да, то восстановить новый.

Пока у меня есть:

for (int i = 0; i < perm.length; i++)
{
    int num = (int) (Math.random() * 9); 
    int []

    perm[i] = num;   
}

person user1729448    schedule 09.12.2012    source источник
comment
Принятый ответ неверен. Вы его проверили???   -  person Samitha Chathuranga    schedule 20.05.2015
comment
Возможный дубликат Java, упрощенная проверка, если массив int содержит int   -  person Albon Wu    schedule 05.08.2017


Ответы (3)


Arrays.asList(perm).contains(num) 

из Как я могу проверить, массив содержит определенное значение?

for (int i = 0; i < perm.length; i++)

этого недостаточно для такого цикла, если произойдет столкновение, некоторые слоты не будут инициализированы.

В целом для этой задачи лучше сначала инициализировать массив значениями по порядку, а затем перемешать его, используя случайные индексы перестановки

person Nikolay Kuznetsov    schedule 09.12.2012
comment
Я новичок в java и только начал изучать массивы. Не могли бы вы привести пример того, что вы имеете в виду, или объяснить это? - person user1729448; 09.12.2012
comment
@ user1729448, объясни о чем? Вы перешли по предоставленным ссылкам? - person Nikolay Kuznetsov; 09.12.2012
comment
Тогда Arrays.asList(perm).contains(num) точно ответит на ваш вопрос. - person Nikolay Kuznetsov; 09.12.2012
comment
Неважно, я это понимаю. Итак, если число есть в списке, оно возвращает true? - person user1729448; 09.12.2012
comment
@ user1729448, да, должно. - person Nikolay Kuznetsov; 09.12.2012
comment
давайте продолжим обсуждение в чате - person user1729448; 09.12.2012
comment
Это неправильно. Arrays.asList(perm) возвращает List‹int[]›. contains не всегда может быть правдой, даже если число там есть. - person Engineer2021; 25.04.2014
comment
Это не верно. in contains(num) num должен быть объектом. Но это никогда не будет одним и тем же объектом, даже если это число будет найдено заранее. Потому что здесь для каждого значения int создается новый объект Integer и передается в метод. - person Samitha Chathuranga; 20.05.2015
comment
Это будет работать только для объекта Integer. Не с примитивным int. - person Wai Yan; 27.01.2016
comment
Это неправильно... в соответствии с приведенными выше комментариями от @WaiYan - person Tim Boland; 09.06.2017
comment
Неправильный ответ! - person Jorgesys; 18.05.2021

вот полный ответ

int[] array = {3,9, 6, 5, 5, 5, 9, 10, 6, 9,9};

    SortedSet<Integer> s = new TreeSet();
    int numberToCheck=61;
    for (int i = 0; i < array.length; i++) {
        s.add(array[i]);
    }

    System.out.println("Number contains:"+!(s.add(numberToCheck)));


    System.out.println("Sorted list:");
    System.out.print(s);
person Samitha Chathuranga    schedule 20.05.2015
comment
Зачем вам нужно определять режим и переменную maxCount? - person MERT DOĞAN; 23.11.2017
comment
Извините за путаницу. Они не нужны. Я отредактировал ответ, удалив их - person Samitha Chathuranga; 11.12.2017

Добавление строки и целого числа для проверки существования или отсутствия.

public class existOrNotInArray {

public static void elementExistOrNot() {
    // To Check Character exist or not
    String array[] = { "AB", "CD", "EF" };

    ArrayList arrayList = new ArrayList<>();

    String stringToCheck = "AB";

    for (int i = 0; i < array.length; i++) {
        arrayList.add(array[i]);
    }

    System.out.println("Character exist : " + arrayList.contains(stringToCheck));

    // To Check number exit or not
    int arrayNum[] = { 1, 2, 3, 4 }; // integer array

    int numberToCheck = 5;

    for (int i = 0; i < arrayNum.length; i++) {
        arrayList.add(arrayNum[i]);
    }
    System.out.println("Number exist :" + arrayList.contains(numberToCheck));
}

public static void main(String[] args) {
    elementExistOrNot();
}
}
person Mjachowdhury    schedule 03.08.2018