Olá. Espero que todos estejam bem. Estou começando a aprender Java e ao tentar fazer o exercício:
Faça um programa que preencha um vetor com 8 elementos, e inverta esse mesmo vetor,
trocando o primeiro elemento pelo último, o segundo pelo penúltimo, e assim por diante.
Exemplo:
vetor [ 1, 2, 3, 4, 5, 6, 7, 8] => vetor [ 8, 7, 6, 5, 4, 3, 2, 1]
Fiz o seguinte código:
public class list3Ex1{
public static void main(String[] args){
int [] a = {1,2,3,4,5,6,7,8};
int [] b = {};
for (int i=7, j=6; i<7; i++, j--){
b[j] = a[i];
}
for (int i=7; i<7; i++){
}
System.out.println("Inversão do vetor a: " + b);
}
}
Ao compilar o código aparece assim: Inversão do vetor a: [I@7637f22
Só um detalhe, em vez de usar um tamanho fixo, seria melhor usar o mesmo tamanho do outro array:
int[] b = new int[a.length];
O mesmo vale para o for, prefira usar a.length em vez de um valor fixo, assim se o tamanho de a mudar, você não precisa ficar atualizando o restante do código.
E aproveitando, daria para fazer assim:
int[] b = new int[a.length];
for (int i = 0; i < a.length; i++) {
b[a.length - i - 1] = a[i];
}
Entendi, mas é possível resolver esse exercício sem criar um o método “inverter” ???
O professor passou esses exercícios mas nas aulas não comentou sobre criar novos métodos para resolver os problemas. Acredito que eu tenha que tentar resolver somente dentro do"public static void main(String[] args)" e não criar o “private static void inventer”.
É possível ?