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

Създавам масив с дължина 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
Няма значение, разбирам го. Така че, ако num е в списъка, той връща 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
Това е грешно. в съдържа(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