sábado, 14 de julho de 2012

Ordenar Array bidimensional

Como já tinha sido referido aqui podemos ordenar um array de uma dimensão, recorrendo à classe java.util.Arrays. Para ordenar um array bidimensional, temos de implementar a interface  java.util.Comparator.
Vamos supor que temos um array bidimensional em que a primeira coluna de cada linha é o nome de uma pessoa, a segunda a idade e a terceira uma descrição.
Com o seguinte código Java, vamos ordenar o array por idades.

package com.blogspot.aefdev;
 
import java.util.Arrays;
import java.util.Comparator;
 
public class Exemplo {
    
    public static void main(String[] args) {
        String arr[][] = {
                    { "João", "25", "desc x" },
                    { "Maria", "20", "desc y" },
                    { "Zé", "30", "desc z" }
                };

        Arrays.sort(arr, new Comparator() {
            @Override
            public int compare(String[] o1, String[] o2) {
                final String idade1 = o1[1];
                final String idade2 = o2[1];
                return idade1.compareTo(idade2);
            }
        });
        // Imprimir Array
        for (int i = 0; i < arr.length; i++) {
            System.out.println(arr[i][0] + ", " + arr[i][1] + ", " + arr[i][2]);
        }
    }
}

Resultado:
Maria, 20, desc y
João, 25, desc x
Zé, 30, desc z

Sem comentários:

Enviar um comentário