📜  沿左对角线对二维数组进行排序的Java程序

📅  最后修改于: 2022-05-13 01:54:23.257000             🧑  作者: Mango

沿左对角线对二维数组进行排序的Java程序

Vector 类实现了一个可增长的对象数组。向量基本上属于遗留类,但现在它与集合完全兼容。它在Java.util包中,实现了List接口,所以这里我们可以使用List接口的所有方法。该程序用于在左对角线上对二维数组进行排序。我们将使用向量的概念对左对角线进行排序,然后参考下图如下。

插图:创建向量

Vector():创建一个初始容量为10的默认向量。

Vector v = new Vector();

算法:

  • 一一遍历 Diagonal 元素。条件是 (i==j) 或 (arr[i][i])
  • 在向量 v 中添加 Diagonal 的元素。
  • 对向量进行排序。
  • 将排序的元素从向量推回对角线。

现在让我们在登陆实现部分之前讨论将在上述方法中使用的函数。



A.的removeAll(): Java.util.vector.removeAll(Collection col) 方法用于从向量中移除指定集合中存在的所有元素。

句法:

Vector.removeAll(Vector);  

B. Collections.sort(): 该方法用于对向量进行排序。

句法:

Collections.sort(Vector) ;

C. add(): 它 在向量中添加元素。

句法:

Vector.add(value) ;

D.获取(): 此方法将获取存储在特定索引处的 Vector 元素。

句法:

Vector.get(3);

例子:

Java
// Java Program to Sort 2D Array Across Left Diagonal
  
// Importing required classes
import java.io.*;
import java.lang.*;
import java.util.*;
  
// Main class
class GFG {
  
    // Main driver method
    public static void main(String[] args)
        throws java.lang.Exception
    {
  
        // Custom input 2D array
        int[][] arr
            = { { 5, 2, 0, 7, 1 }, { 3, 4, 2, 9, 14 },
                { 5, 1, 3, 5, 2 }, { 4, 2, 6, 2, 1 },
                { 0, 6, 3, 5, 1 }, { 1, 4, 7, 2, 8 } };
  
        // Display message
        System.out.println("Matrix without sorting \n");
  
        // Nested for loops to display 2D matrix
        for (int i = 0; i < 5; i++) {
            for (int j = 0; j < 5; j++) {
  
                // Printing elements
                System.out.print(arr[i][j] + " ");
            }
  
            // By now we are done with one row so
            // new line is needed
            System.out.println();
        }
  
        // Creatig an object of Vector class
        Vector v = new Vector<>();
  
        // Adding elements of diagonal in vector
        // using add() method
        for (int i = 0; i < 5; i++) {
            v.add(arr[i][i]);
        }
  
        // Sorting elements in vector
        // using Collections.sort() method
        Collections.sort(v);
  
        // Sorted elements are pushed back from vector to
        // row using get() method
        for (int j = 0; j < 5; j++) {
            arr[j][j] = v.get(j);
        }
  
        // Display message
        System.out.println("Matrix after sorting \n");
  
        // Nested for loops to display 2D matrix
        for (int i = 0; i < 5; i++) {
            for (int j = 0; j < 5; j++) {
                System.out.print(arr[i][j] + " ");
            }
            System.out.println();
        }
    }
}


输出
Matrix without sorting 

5 2 0 7 1 
3 4 2 9 14 
5 1 3 5 2 
4 2 6 2 1 
0 6 3 5 1 
Matrix after sorting 

1 2 0 7 1 
3 2 2 9 14 
5 1 3 5 2 
4 2 6 4 1 
0 6 3 5 5