gpt4 book ai didi

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

转载 作者:搜寻专家 更新时间:2023-10-31 08:12:22 25 4
gpt4 key购买 nike

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

[ 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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com