对于按列值对2D ArrayList进行排序,可以使用Java中的Collections.sort()方法结合自定义的Comparator来实现。以下是一个示例代码:
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
public class Sort2DArrayList {
public static void main(String[] args) {
// 创建一个2D ArrayList
ArrayList<ArrayList<Integer>> list = new ArrayList<>();
ArrayList<Integer> row1 = new ArrayList<>();
row1.add(3);
row1.add(2);
row1.add(1);
list.add(row1);
ArrayList<Integer> row2 = new ArrayList<>();
row2.add(1);
row2.add(2);
row2.add(3);
list.add(row2);
ArrayList<Integer> row3 = new ArrayList<>();
row3.add(2);
row3.add(1);
row3.add(3);
list.add(row3);
// 按列值进行排序
Collections.sort(list, new Comparator<ArrayList<Integer>>() {
@Override
public int compare(ArrayList<Integer> o1, ArrayList<Integer> o2) {
// 指定按第一列进行排序,如果第一列相等则按第二列排序,以此类推
for (int i = 0; i < o1.size(); i++) {
int cmp = o1.get(i).compareTo(o2.get(i));
if (cmp != 0) {
return cmp;
}
}
return 0;
}
});
// 输出排序结果
for (ArrayList<Integer> row : list) {
System.out.println(row);
}
}
}
上述代码中,我们创建了一个2D ArrayList,并使用Collections.sort()方法对其进行排序。通过自定义Comparator,我们可以指定按列值进行排序。如果列值相等,则按照下一列的值进行排序,以此类推。最后,我们输出排序结果。
这个方法适用于任意大小的2D ArrayList,并且可以根据需要指定按照哪一列进行排序。如果列值相等,可以根据实际需求决定是否继续按照下一列的值进行排序。
腾讯云相关产品和产品介绍链接地址:
请注意,以上链接仅为示例,具体产品选择应根据实际需求进行评估和选择。
领取专属 10元无门槛券
手把手带您无忧上云