对ArrayList <arraylist <integer>&gt;进行排序由ArrayList <integer>中的第三个元素组成

时间:2017-07-30 05:53:01

标签: java sorting arraylist

我很难找到通过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));
    }
}

感谢任何帮助。谢谢你的时间。

1 个答案:

答案 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);
}