Achando um determinado número maior ou menor de todos e exibindo sua posição | ArrayList
3 respostas
programaçãojava
guitarVoid
Olá outra vez, galera, estou tentando aprender a mexer com ArrayList, consegui progredir com boa parte do código, no entanto, eu preciso de ideias de como implementar a parte que falta em sobre encontrar um número e mostrar a posição dele.
//Inicializações de novos objetosScannerler=newScanner(System.in);ArrayListvetor=newArrayList();StringBuffersbk=newStringBuffer();intnumero;//Entrada de dadosSystem.out.println("Insira um número para iniciar: ");intqtdVetor=ler.nextInt();//Repetição que adiciona números à listafor(intx=0;x<qtdVetor;x++){System.out.println("Digite um número para inserir à lista: ");numero=ler.nextInt();vetor.add(numero);}//Saída de dados da listaSystem.out.println(vetor.get(1));System.out.println("Lista é composta por:"+vetor);}}
Eu encontrei um código que fica comparando com variáveis “maior” e “menor” pra exibir depois, alguém que tenha esse tipo de código poderia me explicar como ele funciona?
Object[]clone=vetor.toArray();// cria uma cópiaArrays.sort(clone);// ordena a cópiaintmaior=clone[clone.length-1];// obtem o maiorintposicaoDoMaior=vetor.indexOf(maior);
guitarVoid
Eu fiz isso aqui, mas o vetorNovo.get(v) tá indicando erro, como que eu faço pra apontar dentro de um If??
ArrayList vetorNovo = new ArrayList();
System.out.println("Digite um número para iniciar: ");for(v=0;v<vetorNovo.size()-1;v++){//LerovetorSystem.out.print("Digite um numero: ");vetorNovo.add(v);if(vetorNovo.get(v)<maior){//Gravaomaiorvalordevetor[v]emmaiormaior=vetorNovo.get(v);}if(vetorNovo.get(v)>menor){//Gravaomenorvalordevetor[v]emmenormenor=vetorNovo.get(v);}}intposicaoDoMenor=vetorNovo.indexOf(menor);System.out.print("\nO menor número é: "+menor);System.out.println("\nSua posição é: "+posicaoDoMenor);}
D
diego12
O get retorna um Object e não um int, então use o cast:
if (((int)vetorNovo.get(v)) < maior) {
Ou modifique o tipo genérico da lista:
ArrayList<Integer> vetorNovo = new ArrayList<Integer>();