Pessoal alguem saberia me dizer como eu faço pra retornar a maior posição de um ArrayList???
Por favor…
Muito Obrigado!
Pessoal alguem saberia me dizer como eu faço pra retornar a maior posição de um ArrayList???
Por favor…
Muito Obrigado!
size()-1
cara minha List eh cheia de posições diferentes
Ex:
22
100
48
2
123
48
e assim por diante! tem umas 40 posições com valores bem diferentes!
pelo que eu saiba esse size é somente para saber o numero de posições cara!
preciso mesmo e saber qual a posição MAIOR!! =/
Sim ele te mostra o tamanho que começa em zero e vc usa assim
//ordena o ArrayList
Collections.sort(seuArrayList);
seuArrayList.get(seuArrayList.size() - 1); // <- retorna a última posição do Arraylist
então na verdade vc precisa saber o maior valor em sua lista?
ISSO CARA!
NA MOSCA! HEHEHE
POR FAVOR UMA AJUDA!!!
responde tudo…
[code]import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
public class Teste {
/**
* @param args
*/
public static void main(String[] args) {
List<Integer> list = new ArrayList<Integer>();
list.add(Integer.valueOf(22));
list.add(Integer.valueOf(100));
list.add(Integer.valueOf(48));
list.add(Integer.valueOf(2));
list.add(Integer.valueOf(123));
list.add(Integer.valueOf(49));
System.out.println("Ultimo indice é " + (list.size() - 1));
Collections.sort(list);
System.out.println("Maior valor é " + list.get(list.size() - 1));
}
}
[/code]
SeuArrayList().get(SeuArrayList().size());
Da certo, pode fazer
Desculpe é
SeuArrayList().get(SeuArrayList().size()-1);
//ordena o ArrayList
Collections.sort(seuArrayList);
seuArrayList.get(seuArrayList.size() - 1); // <- retorna a última posição do Arraylist
Collections.sort(…); vai alterar a ordem dos valores do array, cuidado!
o que tu podes fazer é:
int i_maior = 0;
for(int i = 1; i < lista.size(); i++) {
if (lista.get(i) > lista.get(i_maior)) {
i_maior = i;
}
}
//aqui a variável [b]i_maior[/b] irá ter o índice do maior valor na lista
Dica: estude lógica de programação!
[quote=dionat4n]
//ordena o ArrayList
Collections.sort(seuArrayList);
seuArrayList.get(seuArrayList.size() - 1); // <- retorna a última posição do Arraylist
Collections.sort(…); vai alterar a ordem dos valores do array, cuidado!
o que tu podes fazer é:
int i_maior = 0;
for(int i = 1; i < lista.size(); i++) {
if (lista.get(i) > lista.get(i_maior)) {
i_maior = i;
}
}
//aqui a variável [b]i_maior[/b] irá ter o índice do maior valor na lista
Dica: estude lógica de programação!
[/quote]
oq é mais rápido? duplicar a lista ordernar e pegar o maior ou rodar a lista num loop?
sempre fui muito mal nisso na facu mas creio que como o sort ja é algo muito bem feito e se imaginarmos a pior das ipoteses que a lista tem uns 1000 itens e que tem que percorrer todos os valores creio que “copia/sort” é uma ótima solução mas é claro que o loop para listas menores talvez seja a melhor solução.
mas é claro que se vc precisa do indice do maior valor o loop é a unica solução creio.
Acho que com Collections resolve:
Object obj = Collections.max(arrayList);
Vcs tão falando de vários problemas diferentes, mesmo porque o campeão que postou o problema não definiu muito bem qual era.
Ou ele quer a posição do último cara da lista (o size()-1), ou ele quer o valor desse cara minhaLista.get(minhaLista.size()-1) ou ele quer o MAXIMO dos valores presentes na lista (que eu achava que era mas todo mundo respondeu diferente disso…).
O collections tem um método max eu acho (concordando com o phpinheiro).
Senão um loopzinho igual ao do dionat4n serve.
Ola algum de vcs pode me ajudar nesse topico
http://www.guj.com.br/posts/list/112894.java ???
Obrigado
[quote=nextuser][quote=dionat4n]
//ordena o ArrayList
Collections.sort(seuArrayList);
seuArrayList.get(seuArrayList.size() - 1); // <- retorna a última posição do Arraylist
Collections.sort(…); vai alterar a ordem dos valores do array, cuidado!
o que tu podes fazer é:
int i_maior = 0;
for(int i = 1; i < lista.size(); i++) {
if (lista.get(i) > lista.get(i_maior)) {
i_maior = i;
}
}
//aqui a variável [b]i_maior[/b] irá ter o índice do maior valor na lista
Dica: estude lógica de programação!
[/quote]
oq é mais rápido? duplicar a lista ordernar e pegar o maior ou rodar a lista num loop?
sempre fui muito mal nisso na facu mas creio que como o sort ja é algo muito bem feito e se imaginarmos a pior das ipoteses que a lista tem uns 1000 itens e que tem que percorrer todos os valores creio que “copia/sort” é uma ótima solução mas é claro que o loop para listas menores talvez seja a melhor solução.
mas é claro que se vc precisa do indice do maior valor o loop é a unica solução creio.[/quote]
Ô povo, precisa estudar mais complexidade de algoritmos! Depois põem a culpa em Java, dizendo que Java é lento…
O que é mais rápido: n ou n*log(n)?
Óbvio que só pesquisar o maior elemento é muito menor que ordenar todos os elementos.
Isso é muito simples. Qualquer dúvida consulte o livro do Cormen - Algoritmos.
é isso ai por isso que devemos deixar só quem sabe responder o resto do povo deve ficar só olhando.
da proxima vez vou esperar a resposta do dionat4n
Dica: depois de estudar lógica de programação, estude complexidade de algoritmos!
você é o cara
Valeu rapaziada!!!
me ajudaram mto
OBRIGADO A TODOS!
DEU CERTO
Até mais
Pessoal…
eu respondi achando que o Roberto queria saber o valor do maior número inteiro do arraylist.
10 20 30 80 12 34 -> o maior valor é o 80!!!
Bom, foi isso que eu entendi.
Roberto, era isso?