目录
根据列值对二维数组进行排序
示例
二维数组的语法
比较器接口
语法
算法
输出
结论
首页 Java java教程 在Java中根据任意给定列中的值对2D数组进行排序

在Java中根据任意给定列中的值对2D数组进行排序

Aug 29, 2023 pm 09:01 PM
java排序d数组

数组是一种线性数据结构,用于存储一组具有相似数据类型的元素。它以顺序方式存储数据。一旦我们创建了一个数组,我们就不能改变它的大小,即它是固定长度的。

假设我们有一个 M x M 阶的二维数组,其中 M 是行数和列数。我们必须对给定数组的指定列进行排序。在本文中,我们将尝试找到给定问题的解决方案。

根据列值对二维数组进行排序

排序是指按升序或降序重新排列给定列表或数组的元素。让我们通过以下直观表示来了解什么是排序 -

示例 1

当我们对该二维数组的第一列进行排序时 -

在Java中根据任意给定列中的值对2D数组进行排序

二维数组的语法

// declaration with size
Data_Type nameOfarray[][] = new Data_Type[sizeofrow][sizeofcolumn]; 
Or,
// declaration and initialization
Data_Type nameOfarray[][] = { {values separated by comma} }; 
登录后复制

我们可以在我们的程序中使用上述任何语法。

Data_Type 的位置, 我们可以给出原始数据类型,如 int 和 double。 Row 和 Column 是所需的数组大小。

在进入程序之前,让我们再讨论一件事。

比较器接口

Java 提供了一个名为 sort() 的内置方法,可以按自然顺序对数组和集合进行排序。 Comparator是一个通用接口,当我们需要以自定义方式对元素进行排序时可以使用它,基本上,我们可以控制排序的顺序。该接口定义了一个方法‘compare()’,它接受两个参数并比较它们。当两个参数相等时返回 0,如果第一个参数大于第二个参数则返回正值,否则返回负值。

语法

Comparator<typeOfelement> nameOfcollection = new Comaprator<typeOfelement>() {
   // your code here
};
登录后复制

算法

  • 步骤 1 - 在类“Srt”中定义方法“araySort()”以及两个参数。在此方法中,创建 Comparator 接口“comp”的对象。现在,定义比较方法,该方法将两行数组一起作为参数。

  • 第 2 步 - 进一步,我们将采用 if-else 块来比较指定的列值,如果第一列的元素大于第二列,则返回 1,否则返回 -1 .

  • 第 3 步 - 现在,使用“Arrays.sort()”方法对数组进行排序。

  • 第 4 步 - 使用两个 for 循环来打印新的排序数组。

  • 第 5 步 - 最后,在 main() 方法中,我们将声明并初始化一个数组。继续创建“Srt”类的对象,以“aray”和列索引作为参数调用方法“araySort()”。

示例

import java.util.*;
class Srt {
   void araySort(int aray[][], int cl) {
      Comparator<int[]> comp = new Comparator<int[]>() {
         public int compare(int[] val1, int[] val2) {
            if(val1[cl-1] > val2[cl-1]) {
               return 1;
            } else {
               return -1;
            }
         }
      };
      Arrays.sort(aray, comp);
      System.out.println("The sorted array: ");
      for(int i = 0; i< aray.length; i++) {
         for (int j = 0; j < aray[i].length; j++) {
            System.out.print(aray[i][j] + " ");
         }
         System.out.println();
      }
   }
}
public class Sorting {
   public static void main(String[] args) {
      int aray[][] = { { 7, 2, 1, 3 }, { 6, 1, 3, 7 }, { 4, 9, 8, 0 }, { 8, 0, 1, 2 } };
      System.out.println("The given array we have: ");
      // for each loop to print original 2D array
      for (int[] array : aray) {
         for (int print : array) {
            System.out.print(print + " ");
         } 
         System.out.println();
      }
      Srt obj = new Srt();
      // calling method using object
      obj.araySort(aray, 1);
      obj.araySort(aray, 3);
   }
}
登录后复制

输出

The given array we have: 
7 2 1 3 
6 1 3 7 
4 9 8 0 
8 0 1 2 
The sorted array: 
4 9 8 0 
6 1 3 7 
7 2 1 3 
8 0 1 2 
The sorted array: 
8 0 1 2 
7 2 1 3 
6 1 3 7 
4 9 8 0
登录后复制

结论

二维数组是具有行和列的数组。在本文中,我们创建了一个 Java 程序来根据指定列的值对二维数组进行排序。我们了解了如何使用 Comparator 接口的内置方法“compare()”对数组或集合进行排序。

以上是在Java中根据任意给定列中的值对2D数组进行排序的详细内容。更多信息请关注PHP中文网其他相关文章!

本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

AI Hentai Generator

AI Hentai Generator

免费生成ai无尽的。

热门文章

R.E.P.O.能量晶体解释及其做什么(黄色晶体)
1 个月前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳图形设置
1 个月前 By 尊渡假赌尊渡假赌尊渡假赌
威尔R.E.P.O.有交叉游戏吗?
1 个月前 By 尊渡假赌尊渡假赌尊渡假赌

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)