Descobrir posição de um elemento

Boa tarde a todos do GUJ.

Bom pessoal, minha dúvida é a seguinte, suponhamos que eu tenha o seguinte ArrayList com os seguintes valores.

[2,45,9,14,77,31,0,1]

Então como que faço para descobrir por exemplo em que posição ta o elemento 77?

cara,

tem o metodo lastIndexOf, que te retorna o index do ultimo objeto encotrado.

t+

jeovane,

Te recomendo ler a API do ArrayList. Bem prático.

O comando é o indexOf() - dá uma olhada na descrição

[quote]Returns the index of the first occurrence of the specified element in this list, or -1 if this list does not contain the element. More formally, returns the lowest index i such that (o==null ? get(i)==null : o.equals(get(i))), or -1 if there is no such index.
Specified by: indexOf(…) in List, Overrides: indexOf(…) in AbstractList
Parameters:
o element to search for
Returns:
the index of the first occurrence of the specified element in this list, or -1 if this list does not contain the element[/quote]
Tem também o contains, que te informa se existe esse cara na tua lista ou não.

primeiramente voce deve ordenar seu array usando esse metodo sort():

java.util.Arrays.sort(seuArray);

depois de ordenado, voce pode utilizar o metodo binarySearch();

int posicao = java.util.Arrays.binarySearch(seuArray,77);
  • onde “int posicao” é a variavel que vai armazenar o indice do numero pesquisado no array, “seuArray” é o seu array de inteiros e 77 é o numero que voce esta procurando.

Obrigado pelas dicas galera.
Conseguir fazer o que eu gostaria, que era remover um determinado objeto do meu ArrayList.

Conseguir da seguinte forma array.remove(array.indexOf(min));

cara,

como disse o jaboot, basta dar uma lida na api. para isso que vc quer basta fazer isso

array.remove(77);

t+

Eu li pelo Javadoc alissonvla

Usei dessa forma array.remove(array.indexOf(min)); porque estou pegando os maiores elementos do meu ArrayList e o adicionando em outro.

Então, ao encontrar o maior elemento removo-o e vou buscar o outro maior. E para acessar a posição dele, tenho que passar o seu valor que é armazenado na variavel min

Entendeu? :slight_smile:

[quote=alissonvla]cara,

como disse o jaboot, basta dar uma lida na api. para isso que vc quer basta fazer isso

array.remove(77);

t+[/quote]

Vai dar erro nisso ai :slight_smile:
Ele vai buscar a posição 77 e não o objeto 77. 77 é um número primitivo e não um Objeto, se tu passa um int para o List, ele entende que trata-se do index e não do valor, portanto…

array.remove( new Integer (77));

E jeovane.reges, de duas uma:

1 - Tu está com uma baita preguiça e sem vontade de fazer teus exercícios e está vindo aqui

2 - Não está lendo com atenção o que o pessoal te passa

Eu digo porque no outro post eu já havia demonstrado e explicado detalhadamente como fazer isso e você abriu outro tópico com a dúvida que já havia sido respondida lá, é quase como você ler a primeira pergunta, depois a segunda e ver que a resposta da primeira está bem clara na primeira pergunta.

A critica é porque se estiver na opção 1, você não vai longe nessa área e para a opção 2, diminua a pressa na leitura e se atente as definições.

acho que vc ta complicando uma coisa que é simples.

se quiser postar seu codigo para podermos te ajudar.

com certeza vai dar erro Nel, tem que passar o Objeto Integer.

obrigado por me corrigir

Olá nel

Primeiramente queria agradecer a sua crítica, ela é construtiva e criticas assim sempre são bem vidas :slight_smile:

Na verdade não é preguiça de maneira alguma. É apenas correria e algumas vezes falta de atenção, como voce mesmo citou.

É claro que tem detalhes em java que admito não saber como usa-los, mas, pra isso tem o javadoc que pode me ajudar e tal, só que as vezes estou tão apressado que nem lembro dele (um grande erro isso).

Enfim, sou muito grato a todos aqui no fórum, pois a cada dúvida solucionada é um aprendizado a mais.

[quote=jeovane.reges]Olá nel

Primeiramente queria agradecer a sua crítica, ela é construtiva e criticas assim sempre são bem vidas :slight_smile:

Na verdade não é preguiça de maneira alguma. É apenas correria e algumas vezes falta de atenção, como voce mesmo citou.

É claro que tem detalhes em java que admito não saber como usa-los, mas, pra isso tem o javadoc que pode me ajudar e tal, só que as vezes estou tão apressado que nem lembro dele (um grande erro isso).

Enfim, sou muito grato a todos aqui no fórum, pois a cada dúvida solucionada é um aprendizado a mais.[/quote]

Fico satisfeito que tenha entendido a critica.
Quem frequenta o fórum diariamente, como eu, vê muitos casos de usuários pedindo exercícios prontos, o que nos deixa um pouco chateado (nervoso) com a situação. Eu realizei a crítica não somente pela falta de leitura da API, afinal, muitas vezes eu li e não entendi o funcionamento da mesma, sendo necessário explicação mais detalhada de pessoas mais experientes.

A minha critica principal diz respeito ao fato de eu ter lhe demonstrado a necessidade que citou aqui em tópico anterior, mas não havia se atendado a isso.
Não te preocupas porque todos nos engamos ou fazemos algo com pressa e acabamos por não ver o que está bem na nossa frente.
Sempre que precisar de algo é só postar de forma coerente aqui no GUJ que com certeza o pessoal vai lher ajudar.

Forte abraço e sucesso!

Valeu nel

Sucesso pra você também :slight_smile:
Abraço.

Tem varias formas de se fazer amigo.

uma delas é vc criar uma variavel.

[code]public Integer retornaPosicao(Integer numero){

Integer posicao = 0;

for(posicao;posicao < array.length; posicao++){
     if(posicao == numero){
     
        return posicao;
     }
 }
return -1; // menos um porque vc pode fazer um tratamento depois :D 

}[/code]