gpt4 book ai didi

java - 尝试根据另一个数组字母顺序对数组进行排序

转载 作者:行者123 更新时间:2023-11-29 04:05:23 25 4
gpt4 key购买 nike

我有 2 个 ArryList:一个整数和一个字符串。

ArrayList<String> stars = new ArrayList<>();
ArrayList<Integer> index = new ArrayList<>();

index.add(1);
index.add(2);
index.add(3);
index.add(4);
index.add(5);
index.add(6);

stars.add("g");
stars.add("c");
stars.add("a");
stars.add("l");
stars.add("b");
stars.add("q");

我需要重新排列索引 ArryList 的值,这样 stars.get(index.get(i)) 将按字母顺序给出星星数组

我写了这段代码:

for (int x = 0; x < stars.size(); x++) {
for (int y = x+1; y < stars.size(); y++) {
if (stars.get(x).compareTo(stars.get(y)) > 0 ) {
int temp = index.get(x);
index.set(x, index.get(y));
index.set(y, temp);
}
}
}

但我不断得到这个输出:

[4 2 0 1 3 5]

对于索引数组

代替:

[2 4 1 0 3 5]

谁能帮我找出我做错了什么?

最佳答案

真的不知道你应该怎么做才能得到这个:

[2 4 1 0 3 5]

但是如果你把这些值放在排序的映射中:

Map<String, Integer> map = new TreeMap<>();
map.put("g", 1);
map.put("c", 2);
map.put("a", 3);
map.put("l", 4);
map.put("b", 5);
map.put("q", 6);
System.out.println(map.values());

你会得到这样的结果:

[3, 5, 2, 1, 4, 6]

关于java - 尝试根据另一个数组字母顺序对数组进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59196354/

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