Array

Boa tarde pessoal, esse exercicio consiste em basicamente a pessoa informar um nome e armazenar no array porem sempre que informo a quantidade de nomes que desejo informar ele executa 2 vezes, sou inciante peço desculpas se n consegui explicar direito. se puderem dar uma olhada agradeço!
package Arrays.Exercicios;

    import java.util.Arrays;
    import java.util.Scanner;

    public class aNumericoEString {

    	public static void main(String[] args) {
    		Scanner entrada = new Scanner(System.in);

    		System.out.println("Digite quantos nomes deseja informar: ");
    		int qtdeNome = entrada.nextInt();
    		
    		String [] nomes = new String [qtdeNome];
    		
    		for (int i = 0; i < nomes.length; i++) {
    			System.out.println("Digite o nome numero " +(i+1) + ":");
    			nomes[i] = entrada.nextLine();
    		}
    		
    		System.out.println(Arrays.toString(nomes));
    		
    		entrada.close();
    		
    	}
    }

O problema é nessa parte:

int qtdeNome = entrada.nextInt();

O Scanner faz a leitura do teclado. Quando vc usa o nextInt e informa o número, vc aperta em seguida o ENTER, certo? Nesse caso o Scanner vai ler o numero e armazená-lo na variável, e vai deixar o ENTER guardado para ler na proxima vez que algum método do scanner for chamado (de forma automática), que é exatamente a que está dentro do FOR:

nomes[i] = entrada.nextLine();

Por isso que ele executa 2 vezes. Para evitar isso, mude a leitura da quantidade de nomes para:

int qtdeNome = Integer.valueOf(entrada.nextLine());

Isso vai funcionar pq o Scanner vai ler até a próxima quebra de linha, ou seja, até que vc aperte o ENTER, e não vai deixar nada guardado para ser lido depois.

cara muito obg !!!