我很难找到通过ArrayList<ArrayList<Integer>>
中的第三个元素对ArrayList<Integer>
进行排序的方法。例如,给定
ArrayList<ArrayList<Integer>> = [[5,4,0],[3,2,1],[3,3,3],[2,2,2]]
我想对它进行排序,以便ArrayList<Integer>
s由提供输出的第三个元素按升序排列:
ArrayList<ArrayList<Integer>> = [[5,4,0],[3,2,1],[2,2,2],[3,3,3]]
我之前使用Collections
对ArrayList进行排序,但这个有点棘手。
下面的java代码也可能有助于理解我遇到的问题。
public static void main(String[] args){
ArrayList<ArrayList<Integer>> list = new ArrayList<ArrayList<Integer>>();
Random rand = new Random();
for(int i=0; i<3; i++){
ArrayList<Integer> components = new ArrayList<Integer>();
components.addAll(Arrays.asList(rand.nextInt(10),rand.nextInt(10),rand.nextInt(10)));
list.add(components);
}
System.out.println(list);
sort(list);
}
public static void sort(ArrayList<ArrayList<Integer>> list){
for(int i=0; i<list.size(); i++){
//Here is where I want to sort the list by the element retrieved from the println below
System.out.println(list.get(i).get(2));
}
}
感谢任何帮助。谢谢你的时间。
答案 0 :(得分:3)
您可以使用<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<select>
<option>Jane Doe</option>
<option>Mary Sue</option>
<option>John Smith</option>
<option>Gary Stu</option>
</select>
构建您的Arrays.asList
(请编程到界面)并假设您使用的是Java 8+,您可以使用lambda编写List<List<Integer>>
。像,
Comparator
哪个输出
public static void main(String[] args) {
List<List<Integer>> al = Arrays.asList( //
Arrays.asList(5, 4, 0), Arrays.asList(3, 2, 1), //
Arrays.asList(3, 3, 3), Arrays.asList(2, 2, 2));
Collections.sort(al, (a, b) -> a.get(2).compareTo(b.get(2)));
// Collections.sort(al, (a, b) -> Integer.compare(a.get(2), b.get(2)));
System.out.println(al);
}