📌  相关文章
📜  跨列对二维数组进行排序的Java程序

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

跨列对二维数组进行排序的Java程序

Vector类实现了一个可增长的对象数组。向量基本上属于遗留类,但现在它与集合完全兼容。它在 Java.util 封装并实现了List接口,所以这里我们可以使用List接口的所有方法。该程序用于跨列对二维数组进行排序。我们将使用向量的概念对每一列进行排序。

算法:

  1. 一一遍历每一列。
  2. 在向量 v 中添加第 1 列的元素。
  3. 对向量进行排序。
  4. 将排序的元素从向量推回到列。
  5. 通过删除所有元素来清空向量以进行新排序。
  6. 重复上述步骤,直到完成所有列。

插图:创建向量

这里我们创建了一个初始容量为 10 的默认向量,所以语法如下:

Vector v = new Vector();

为实现目标将使用的函数如下:



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

句法:

Vector.removeAll(Vector)  

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

句法:

Collections.sort(Vector)

C.添加(): 此方法用于在向量中添加元素。

句法:

Vector.add(value)

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

句法:

Vector.get(3);

例子

Java
// Java Program to Sort 2D array across Columns
 
// 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 for 2D array
        int[][] arr = { { 7, 2, 0, 5, 1 },
                        { 3, 8, 2, 9, 14 },
                        { 5, 1, 0, 5, 2 },
                        { 4, 2, 6, 0, 1 } };
 
        // Display message for better readability
        System.out.println("Matrix without sorting \n");
 
        // Nested iteration to display matrix
        for (int i = 0; i < 4; i++) {
 
            for (int j = 0; j < 5; j++) {
 
                // Printing elements of 2D matrix
                System.out.print(arr[i][j] + " ");
            }
            // New line as we are done with row
            System.out.println();
        }
 
        // Creating an object of Vector class
        Vector v = new Vector<>();
 
        // Nested iteration using for loops
        for (int i = 0; i < 5; i++) {
            for (int j = 0; j < 4; j++) {
 
                // Adding elements of columns in vector
                // using add() method
                v.add(arr[j][i]);
            }
 
            // Sorting elements in vector
            // using sort() method
            Collections.sort(v);
 
            for (int j = 0; j < 4; j++) {
 
                // Sorted elements are pushed back
                // from vector to column
                arr[j][i] = v.get(j);
            }
 
            // Elements are removed from vector for
            // fresh sorting using remove() method
            v.removeAll(v);
        }
 
        // Printing matrix after sorting
        System.out.println("Matrix after sorting \n");
 
        for (int i = 0; i < 4; i++) {
            for (int j = 0; j < 5; j++) {
 
                System.out.print(arr[i][j] + " ");
            }
 
            System.out.println();
        }
    }
}


输出
Matrix without sorting 

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

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