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)