【发布时间】:2016-04-25 19:46:26
【问题描述】:
我遇到了一个问题,我需要按字母顺序对字符串数组进行排序。我可以对一个数组进行排序,但是当还有 2 个数组对应于第一个数组时,问题就开始了。每个数组中的每个值都应该在同一个位置,以免信息混乱。对array1 进行排序后,它按字母顺序排列,但我不知道如何在排序完成后使array2 和array3 中的值更改为与array1 中相同的位置。
到目前为止我的代码是:
public void sort()
{
boolean finish = false;
while(finish == false){
finish = true;
for(int i=0;i<Country.length-1;i++)
{
int num = 0;
if(Country[i] != null && Country[i + 1] != null)
{
String name1=Country[i]; String name2=Country[i+1];
num=name1.compareTo(name2);
}
else if(Country[i] == null && Country[i + 1] == null){
num = 0;
}
else if(Country[i] == null){
num = 1;
}
else {
num = -1;
}
if(num>0)
{
String temp=Country[i];
Country[i]=Country[i+1];
Country[i+1]=temp;
finish=false;
}
}
}
【问题讨论】:
-
国家数组值,例如是{z,a};城市值是 {2,1} 在对国家数组进行排序后,我希望城市数组交换与国家数组中交换的相同位置的值
-
是否允许创建自定义的、可比较的对象类来保存所有数据?这样一来,您只需对一个数组进行排序,而不是对多个数组进行排序。
-
对不起,我的错误是我开始创建基于 3 个数组的 GUI,现在如果我想更改它,我还需要更改整个程序和设计。这就是为什么我试图至少获得某种提示,以节省我的时间。
-
第一个问题:一定要手动实现冒泡排序吗?有内置的 Java 排序方法执行得更好。无论如何,你的数据是什么?你有一个
City,一个Country,还有其他代表一个地方的东西?因此,您创建了一个Place[](自定义类),然后根据Country字符串值对所有Place对象进行排序。这样,所有数据都“按正确的顺序” -
手动实现冒泡排序不是必须的。我只是想了解它是如何工作的,这就是为什么我想在第一次使用它时手动实现它。我的数组是城市、国家和人口。当所有县按字母顺序排列时,我希望城市和人口保持在同一个地方,因此在 textArea 中连续显示它们之后将是英国、伦敦和任何人口。目前,城市和人口数量在排序国家数组后变得一团糟
标签: java bubble-sort