java - 在 Java 中按 y 值对坐标进行排序的最简单方法?

标签 java arrays list sorting

假设我有一个(未排序的)数组:

[ 12 64 35 ]
[ 95 89 95 ]
[ 32 54 09 ]
[ 87 56 12 ]

我想对它进行排序,使第二列按升序排列:

[ 32 54 09 ]
[ 87 56 12 ]
[ 12 64 35 ]
[ 95 89 95 ]

以下是我考虑过的处理方法:

  1. 将每个 [ x y z ] 值制成一个列表,并将每个 xyz 值与一个标识符相关联,该标识符的属性是 xyz 值的 y 值。然后,对标识符进行排序。 (我不确定对 Java 数组进行排序是否会保留该行中的相应值)

  2. 使用hashmap做和前面一样的事情

但是,上述两种方法显然有些浪费和复杂,因为它们依赖于不需要的外部标识符值,那么有没有更简单、更快速、更优雅的方法来做到这一点?

抱歉,如果这是一个愚蠢的问题,我对 Java 对数组进行排序的方式一点都不熟悉。

最佳答案

最简单、最简洁的方法是编写一个小型比较器类。这也将使您更灵活地控制排序行为;例如,您可以对第一个元素或数组的任何元素进行排序。

比较器将是这样的:

new Comparator(){

            public int compare ( Integer[] obj1, Integer[] obj2)
            {
                return obj1[1].compareTo(obj2[1]); 
            }

关于java - 在 Java 中按 y 值对坐标进行排序的最简单方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14175309/

相关文章:

java - 使用 AffineTransformOp 过滤图像时 JVM 崩溃

java - 排序父子关系

javascript - 可以将方法附加到 javascript 中的单例数组吗?

java - 访问数组中的元素

php - 嵌套列表中的 jQuery 奇偶数

css 列列表是无序的

java - 如何从java中的项目文件夹中读取图像?

Java Spark 将 HIVE View 重制为 INSERT

php - 在函数中添加新的数组键

Python:包含元组的排序列表