gpt4 book ai didi

java - 如何轻松获取在android上保存为字符串的数字顺序?

转载 作者:搜寻专家 更新时间:2023-11-01 07:46:27 24 4
gpt4 key购买 nike

我在数组 B[] 中有大约 50 个字符串,其中包含一个带 2 位小数的数字。我想将它们显示在按最大到最小排序的 recyclerView 中,因此我需要制作另一个包含它们顺序的数组。我不能只更改他们的顺序,因为他们每个人在 N[] 中也有一个需要位于同一位置的名称。我应该使用 SQLite 命令还是只创建一个将它们一一排序的函数?或者,在最好的情况下,有没有一种方法可以使用 sort() 或类似的命令对包含 50 个数字 1-50 但排序的数组 O[] 进行排序B[] 的值?

如果没有,我可能会将数组 B[] 克隆到 C[],然后是 sort(C[])。然后我会:

for (i = 0,j != 50, i++) {
for(j = 0, j!= 50, j++) {
if(C[i].equalsTo(B[j]) {
O[i]=j
break;
}
}

有什么问题吗?或者有什么建议吗?

例如:B[ ] 是:

5.26 1.75 9.45 16.74 3.65 0.54 7.21

然后 O[ ] 应该有值

5 1 4 0 6 2 3

最佳答案

一个选项是创建自定义 POJO 以包含小数点/名称对,定义自定义比较器,然后使用它对集合进行排序。像这样:

public class Dpair {
double value;
String name;

public static Comparator<Dpair> DpairComparator
= new Comparator<Dpair>() {

public int compare(Dpair dp1, Dpair dp2) {
return Double.compare(dp1.getValue(), dp2.getValue());
}
};
// getters and setters
}

public class Test {
public static void main(String[] args) {
Dpair[] array = new Dpair[7];
array[0] = new Dpair(5.26d, "name1");
array[1] = new Dpair(1.75d, "name2");
array[2] = new Dpair(9.45d, "name3");
array[3] = new Dpair(16.74d, "name4");
array[4] = new Dpair(3.65d, "name5");
array[5] = new Dpair(0.54d, "name6");
array[6] = new Dpair(7.21d, "name7");

// now sort your array of custom pairs on the value
// this will bring the names with it, maintaining the relative positioning
Arrays.sort(array, Dpair.DpairComparator);
}
}

关于java - 如何轻松获取在android上保存为字符串的数字顺序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43309099/

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