de ordenar os elementos do vetor em ordem crescente, deve ser lido do usuário mais um número qualquer e inserir esse novo número na posição correta, ou seja, mantendo a ordem crescente do vetor. Para isto, deve-se criar um novo vetor com uma posição adicional. como ?
TipoDeDado[] arrayNovo = new TipoDeDado[arrayOriginal.length + 1];
2 curtidas
o problema quero adicionar mais um elemento no segundo array.
Scanner scan = new Scanner (System.in);
int [] nu = new int [10];
int [] na = new int [nu.length + 1];
for (int i = 0; i < nu.length ; i++) {
System.out.println(“Digite os numeros :”);
nu [i] = scan.nextInt() ;
//Arrays.sort(nu);
}
for (int i = 0; i < nu.length ; i++) {
Arrays.sort(nu);
//System.out.println(nu[i]);
} na = nu;
for (int j = 0; j < nu.length ; j++) {
System.out.println("complete o array");
na[j] = scan.nextInt();
//System.out.println(na[j]);
}
for (int j = 0; j < na.length ; j++) {
Arrays.sort(na);
System.out.println(na[j]);
}
}
}
Tem bastante erro de lógica no seu código, não há motivo para reordenar o array a cada iteração dos seus laços.
Veja o exemplo abaixo:
import java.io.PrintStream;
import java.util.Arrays;
import java.util.Scanner;
public class Programa {
public static void main(String[] args) {
Programa programa = new Programa();
programa.executar();
}
private final Scanner entrada = new Scanner(System.in);
private final PrintStream saida = System.out;
public void executar() {
// criar o array desordenado
saida.println("Digite 10 numeros");
int[] array = new int[10];
for (int i = 0; i < array.length; i++) {
saida.printf(" Digite o numero %d de %d: ", (i + 1), array.length);
array[i] = Integer.parseInt(entrada.nextLine());
}
imprimir(array);
// ordenar o array
Arrays.sort(array);
imprimir(array);
// ler um novo número para inserir
saida.print("Digite um novo numero para inserir: ");
int numeroLido = Integer.parseInt(entrada.nextLine());
// descobrir a posição onde inserir o número lido
int posicao;
for (posicao = 0; posicao < array.length; posicao++) {
if (numeroLido < array[posicao]) {
break;
}
}
// criar um array novo com uma posição extra
int[] arrayTemporario = new int[array.length + 1];
// Copiar os elementos que ficarao à esquerda do numero lido
System.arraycopy(array, 0, arrayTemporario, 0, posicao);
// inserir o numero lido na posição descoberta
arrayTemporario[posicao] = numeroLido;
// Copiar os elementos que ficarao à direita do numero lido
System.arraycopy(array, posicao, arrayTemporario, posicao + 1, array.length - posicao);
// o array temporário passa a ser o array oficial
array = arrayTemporario;
imprimir(array);
}
// imprime o array passado por parâmetro
private void imprimir(int[] array) {
saida.println("Array:");
for (int i = 0; i < array.length; i++) {
saida.print(" " + array[i]);
}
saida.println();
}
}
Ok obg continuarei estudando ;).