首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何按列值对2D ArrayList进行排序,如果列值相等怎么办?

对于按列值对2D ArrayList进行排序,可以使用Java中的Collections.sort()方法结合自定义的Comparator来实现。以下是一个示例代码:

代码语言:txt
复制
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,并且可以根据需要指定按照哪一列进行排序。如果列值相等,可以根据实际需求决定是否继续按照下一列的值进行排序。

腾讯云相关产品和产品介绍链接地址:

请注意,以上链接仅为示例,具体产品选择应根据实际需求进行评估和选择。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

没有搜到相关的合辑

领券