在Java中对Array的ArrayList进行排序

Uma*_* A. 13 java arrays sorting

ArrayList<String[]>在Java中排序的最佳方法是什么?

String []是......

String[] = new String[] { "abc", "abc", "abc", "abc", "abc", "abc", "abc" };
Run Code Online (Sandbox Code Playgroud)

现在我想用String []的第二个值(在索引1处)对整个ArrayList进行排序.我需要循环遍历每个String [],然后遍历索引1处的子节点.

有任何想法吗?

EDITED


我有更多的描述.我实际上从一些XML文件获取学校,XML中的每个节点都有7个属性.现在我正在创建一个String []的ArrayList,它从XML中保存那些学校节点,而String []数组本身保存着特定节点的属性.

现在,我想对它进行排序的方式是,它应该按照学校的状态进行排序,这是XML中的第二个属性和ArrayList中String []中的索引1.

我需要首先遍历每个学校(XML中的节点,Java中的String []),然后我将必须过滤State(XML中的State属性,Java中的String [1]).

现在清楚了吗?

wha*_*ley 30

Collections.sort开始,这是一个采用自定义Comparator的方法.您还需要为此编写自定义Comparator.

例如,假设您希望依赖于compareTo方法中定义的字符串的自然顺序:

public static void main(String[] args) throws Exception {
        ArrayList<String[]> listOfStringArrays = new ArrayList<String[]>();
        listOfStringArrays.add(new String[] {"x","y","z"});
        listOfStringArrays.add(new String[] {"a","b","c"});
        listOfStringArrays.add(new String[] {"m","n","o"});
        Collections.sort(listOfStringArrays,new Comparator<String[]>() {
            public int compare(String[] strings, String[] otherStrings) {
                return strings[1].compareTo(otherStrings[1]);
            }
        });
        for (String[] sa : listOfStringArrays) {
            System.out.println(Arrays.toString(sa));
        }
        /* prints out 
          [a, b, c]
          [m, n, o]
          [x, y, z]
        */ 

    }
Run Code Online (Sandbox Code Playgroud)