有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

Java中的图排序多维数组

请问有没有一种方法可以用下面的方式对java中的多维数组进行排序

让我们有这个数组结构

int graph[][] = new int[edges][3];

每个边都有两个坐标和它的权重。我需要根据每个边的权重对整个数组进行排序。 仅供参考,我需要它来寻找生成树。谢谢


共 (2) 个答案

  1. # 1 楼答案

    我猜你在使用Arrays.sortComparator时遇到了问题。它的工作原理与普通数组排序类似,只是有一点变化

    在你的情况下,你会这样做。对于Integer[]数组,需要一个Comparator

        Integer graph[][] = new Integer[2][3];
        graph[0][0] = 2;
        graph[0][1] = 4;
        graph[0][2] = 3;
    
        graph[1][0] = 0;
        graph[1][1] = 1;
        graph[1][2] = 2;
    
    
        Arrays.sort(graph, new Comparator<Integer[]>() {
            @Override
            public int compare(Integer[] o1, Integer[] o2) {
    
                return o1[2] - o2[2];
            }
        });
    
    
        for (Integer[] outerArr: graph) {
            for (Integer val: outerArr) {
                System.out.print(val + " ");
            }
            System.out.println();
        }
    

    印刷品:-

    0 1 2 
    2 4 3 
    
  2. # 2 楼答案

    你可以这样使用:

    Arrays.sort(graph, new Comparator<Integer[]>() {
                 @Override
                 public int compare(final Integer[] entry1, final Integer[] entry2) {
                  // DO SORTING STUFF HERE
                } });