实际的程序略有不同,而且更复杂,但要简单起见:
假设我有一个由字符串组成的数组。字符串可以是动物名称或鸟类名称。字符串都是混合的,没有特定的顺序。
我需要确保首先显示动物名称,然后显示鸟类名称。不需要按字母顺序排列。
假设我已经有了需要移动到最后的鸟名列表。
任何人都可以通过快速有效的方式帮助我在Java中实现这一目标吗?
BEFORE:
Cat
Crow
Dog
Cow
Parrot
AFTER:
Cat
Dog
Cow
Crow
Parrot
现有代码如下:
mixedArray
for (each element in the mixedArray){
//do some processing
..
out.write(mixedArray[x]);
}
答案 0 :(得分:1)
这可能有效
int begin = 0;
int end = mixedArray.length - 1;
String[] sortedArray = new String[mixedArray.length];
for (String mixed : mixedArray) {
for (String bird : birdArray) {
if (mixed.equals(bird)) {
sortedArray[end--] = mixed;
} else {
sortedArray[begin++] = mixed;
}
}
}
这里,sortedArray
是我们存储排序结果的地方,begin
是排序数组的起始索引,end是最后一个索引。 birdArray
是包含鸟名列表的数组。我没有测试过这段代码,但这应该可行。
答案 1 :(得分:0)
我认为有两种方法可以做到这一点。
for(每个元素){检查是否不是鸟然后打印出来}
for(每个元素){检查鸟是否打印出来}