二维数组依据其中一列的数字排序

二维数组根据其中一列的数字排序!
有一个二维string数组,其中有一列是不重复的数字,比如:
s 2 aaa
r 1 bbb
s 0 ccc
想把该数组按行进行重新排序,按照第二列的数字进行,请问应该如何排序?比如要排序成这样:
s 0 ccc
r 1 bbb
s 2 aaa
求解答!
------解决方案--------------------
利用java.util.Arrays.sort(T[] a,Comparator<T> comparator);

String[][] arr={{"s", "2", "aaa"},{"r", "1" ,"bbb"},{"s" ,"0", "ccc"}};
Arrays.sort(arr, new Comparator<String[]>(){
@Override
public int compare(String[] o1, String[] o2) {
return o1[1].compareTo(o2[1]);
}
});
for(String[] s:arr){
System.out.println(Arrays.toString(s));
}

------解决方案--------------------
import java.util.Arrays;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;


public class StringTest {
    static String[][] sample = {{"s", "2", "aaa"}, {"r", "1", "bbb"}, {"s", "0", "ccc"}};
    public static void main(String[] args) {
        print(sample);
        
        sort(sample, 1);
        
        print(sample);
    }
    
    /**
     * <pre>
     * 排序
     * 
     * date: 2014年7月11日
     * </pre>
     * @author hedley
     * @param s 目标排序二维String数组
     * @param columnIndex 以第几列为排序对象
     */
    static void sort(String[][] s, final int columnIndex) {
        List<String[]> helperList = Arrays.asList(s);
        
        Collections.sort(helperList, new Comparator<String[]>() {
            @Override
            public int compare(String[] o1, String[] o2) {
                return o1[columnIndex].compareTo(o2[columnIndex]);
            }
        });
        
        s = (String[][])helperList.toArray();
    }
    
    static void print(String[][] s) {
        for (String[] s1 : s) {
            for (String s2 : s1) {
                System.out.print(s2 + "  ");
            }
            System.out.println();
        }
    }
}

------解决方案--------------------
引用:
给楼主提供一个另类的解决方法吧。你定一个对象,结构为每行数据的数据结构,以第二列为key值,放入treemap中。嘿嘿!


和我想的一样,增加了一点代码,处理可能字符串格式不标准,中间空格很多的自动分割处理。
比如:
        String[][] s = {
                {"s      2 aaa"},
                {"raa 13 bbb"},
                {"s 0 ccc"},
        };

增加正序,反序排列的逻辑。

import java.util.Comparator;
import java.util.TreeMap;

public class Demo {
    public String[] foo(String[][] s){
        TreeMap<Integer, String> map = new TreeMap<Integer, String>(new Comparator<Integer>() {

            @Override
            public int compare(Integer o1, Integer o2) {
                int r = o1.compareTo(o2);
                return r; // 反序就 reuturn -r;