Home Hardware Networking Programmazione Software Domanda Sistemi
Conoscenza Informatica >> Programmazione >> Java Programming >> .

Come trovare il numero di duplicati in un array in Java

Se si dispone di una matrice numerica in un programma Java e contiene un valore duplicato indesiderato , può essere necessario per trovarlo. Utilizzando strutture di ciclo , il codice può scorrere l'array , controllando ogni valore per vedere se si è già verificato e ti permette di sapere dove il duplicato è . Incorporando un ciclo all'interno di un altro , il codice può controllare ogni voce contro gli elementi precedenti . Datevi una chiara comprensione del processo di pensiero fino in fondo che cosa accadrà quando il codice viene eseguito ogni volta che si aggiunge una nuova struttura di controllo . Istruzioni
1

Creare l'array numerico . Se non si dispone già di un numero di serie nel programma , è possibile utilizzare il seguente esempio :

int [ ] myNums = { 3 , 5 , 1 , 6 , 5 , 8 , 7 } ;

Questa riga dichiara e crea un'istanza di un array con valori interi di tipo primitivo . Come si può vedere , il valore duplicato è il numero cinque . Preparare due variabili per memorizzare il valore di numero duplicato e la posizione che si siede a all'interno della matrice :

int dupNum = -1; int dupPos = -1;

inizializzazione questi a negativo , si sarà in grado di dire se il processo rileva un valore duplicato nella matrice oppure no .
2

creare un ciclo per scorrere l'array . Aggiungere la seguente struttura di massima ciclo per il vostro programma :

for (int i = 1; i < myNums.length ; i + + ) { //processo di contenuti qui }

Questo loop verrà iterare una volta per ogni elemento nella propria matrice numerica . All'interno del ciclo , è possibile implementare il processo di verifica , confrontando ogni voce le voci precedenti nella struttura . Memorizzare il valore del numero corrente in una variabile locale all'interno del ciclo : . Int currNum = myNums [ i] ;

Questo valore rappresenta il numero intero nella posizione corrente ogni volta che il ciclo si ripete
3

Creare un secondo ciclo all'interno del primo. Aggiungere il seguente schema ciclo dopo si memorizza il valore corrente nella sua variabile :

for (int j = 0; j

All'interno di questo ciclo , è possibile confrontare il valore corrente a quelli che compaiono in posizioni precedenti nella matrice. In questo modo si può dire se il valore corrente è un duplicato .
4

Confronta l'attuale numero di valori precedenti . Dentro il tuo secondo ciclo for , aggiungere la seguente istruzione condizionale :

se ( currNum == myNums [ j ] ) { //il valore è un duplicato }

Se questo test restituisce un valore vero , significa che l' elemento di matrice corrente è uguale a uno precedente , con la sua posizione indicata dal secondo contatore del ciclo . All'interno del condizionale if, indicare al programma cosa fare quando incontra un duplicato :

dupNum = currNum ; dupPos = i; pausa ;

Il codice imposta i valori del numero di duplicato e la sua posizione , in modo che essi siano accessibili quando termina il ciclo. Nessun ulteriore punto esiste per continuare con il ciclo , in questa fase , così l'istruzione break impedisce di iterare ulteriormente .
5

Break out del primo ciclo. L' istruzione break spezza solo il codice di fuori dal circuito più vicino . Ciò significa che il ciclo esterno continuerà anche quando si è trovato il valore duplicato . Dopo la parentesi di chiusura per il ciclo interno , aggiungere la seguente istruzione condizionale :

se ( dupNum > = 0 ) break;

Se il duplicato non è stato trovato , il ciclo esterno prosegue a . È possibile aggiungere la seguente istruzione di prova dopo il vostro ciclo esterno si chiude :

System.out.println ( "numero di duplicati : " + dupNum + " , posizione : " + dupPos ) ;

Se il codice non ha localizzato un duplicato , entrambe le variabili sarà ancora la memorizzazione di valori di negativo.

 

Programmazione © www.354353.com