gpt4 book ai didi

java - 根据任意索引对数组进行排序

转载 作者:搜寻专家 更新时间:2023-11-01 03:19:42 25 4
gpt4 key购买 nike

所以我知道如何对 intsfloats(或其他数据类型)的 Java 数组进行排序。但是,如果它是一个字符串数组 String[] arr = {},其中数组包含 2x^24x^4 等元素会怎样。如您所见,有几个索引具有整数,可以对其进行排序。

我认为对此进行排序的方法是在索引处拼接数字。对这些数字进行排序,然后将每个旧索引映射到新索引。

我觉得有更好的方法。

本质问题:是否存在一种排序方法,可以根据每个索引的某个索引处的整数对字符串数组进行排序?

如果您想知道,这里有一些算法的示例输入和输出。

Array: {"2x^3","2x^0","1x^1"}
Output:{"2x^3","1x^1","2x^0"} // Sorted based on last index

最佳答案

static final Comparator<String> myComparator = 
new Comparator<String>() {
public int compare(String s1, String s2)
{
// split s1 and s2, compare what you need
// and return the result.
// e.g.
// char digit1 = s1[s1.length() - 1];
// char digit2 = s2[s2.length() - 1];
// return (int)(digit1 - digit2);
}
};

Collections.sort(list, myComparator);
// or
Arrays.sort(array, myComparator);

所以你让别人的排序方法为你做排序,你只需要提供一个方法来说明如何比较项目。您需要遵守一些规则和规定(例如,如果 A < B,B < C,则 A 必须 < C)。

您也可以内联/匿名进行:

Collections.sort(list, new Comparator<String>() {
public int compare(String s1, String s2) {
...
}
});

关于java - 根据任意索引对数组进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34326627/

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