Amigos, estou com um pequeno problema, tenho um sistema que le um arquivo Excel com 4 colunas, destino, codigoproduto, quantidade e codigopedido.
Sendo que estes dados podem vir desordenados. Eu carrego estes dados em uma matriz String[][] e depois preciso contar quantos “destino” tem diferentes.
Hoje eu consigo fazer isso com uma marreta horrivel mas que funciona(É tão horrível que hoje fui tentar arrumar o código e nem mexi nesse trecho)
Queria saber então se tem algum jeito de eu ordenar esta matriz pelo campo “destino” que assim ficaria bem mais facil de contar.
Pesquisei no forum mas não achei nada que pudesse ajudar.
Podes colocar um exemplo simples deste teu array bidimencional? T+
J
jaireltonPJ
Mas qual a estrutura desse array?
Veja esse exemplo:
String[][] array = {{"Teste","abc"},{"Teste2","def"}};Arrays.sort(array, new Comparator<String[]>(){ public int compare(String[] a1, String[] a2){ return a1[1].compareTo(a2[1]); }});
Nesse caso, está ordenando baseado no segundo indice do array ("abc", "def", etc).
Essa variável tabExcel é a que vai receber os dadosdo arquivo excel(tabExcel[linhas][4]), onde o tamanho varia mas o numero de colunas é sempre fixo em 4, e preciso ordenar pelo pi(tabExcel[j][0]
Essas variáveis(pi, seq, qtd e soli) são do tipo Cell(Estou usando a api JExcel para ler o xls) e o j vai incrementando até chegar no final do arquivo.
T
thiagoencdPJ
"jairelton":
Mas qual a estrutura desse array?
Veja esse exemplo:
String[][] array = {{"Teste","abc"},{"Teste2","def"}};Arrays.sort(array, new Comparator<String[]>(){ public int compare(String[] a1, String[] a2){ return a1[1].compareTo(a2[1]); }});
Nesse caso, está ordenando baseado no segundo indice do array ("abc", "def", etc).
Neste caso eu posso ordenar por qual coluna ele vair ordenar?
A estrutura é como eu mostrei acima.
J
jaireltonPJ
Acho que seria algo desse tipo:
Arrays.sort(tabExcel, new Comparator<String[]>(){
public int compare(String[] a1, String[] a2){
return a1[0].compareTo(a2[0]);
}
});
T
thiagoencdPJ
Valeu Jair
Olhando o teu primeiro exemplo ja tinha chegado a esta conclusão, mas ainda não tive tempo de testar, amanhã quando chegar na empresa eu vejo.