Java 排序,但所有内容都被删除
因此,我尝试使用线性排序按字母顺序对单词进行排序,如果已经有类似的单词,则删除该单词。我使用了以下方法:Java 排序,但所有内容都被删除,java,sorting,Java,Sorting,因此,我尝试使用线性排序按字母顺序对单词进行排序,如果已经有类似的单词,则删除该单词。我使用了以下方法: import java.util.Arrays; public class Sorting { public static void main(String[] args) { String[] array = new String[] { "pepperoni", "ham", "bacon", "pineapple", "ha
import java.util.Arrays;
public class Sorting {
public static void main(String[] args) {
String[] array = new String[] { "pepperoni", "ham", "bacon",
"pineapple", "ham", "sausage", "onion", "bacon" };
System.out.println("Before sorting: " + Arrays.toString(array));
for (int i = 0; i < array.length; i++) {
int min = i;
for (int j = i; j < array.length; j++) {
if (array[min].compareTo(array[j]) > 0) {
min = j;
}
else if (array[min].equals(array[j]) == true) {
array[j] = "";
}
}
String tmp = array[i];
array[i] = array[min];
array[min] = tmp;
}
System.out.println("After sorting: " + Arrays.toString(array));
}
}
有人能指出这段代码有什么问题吗?我认为这两种代码应该是:
for(i = 0; i < array.length - 1; i++)
及
我认为这两个问题应该是:
for(i = 0; i < array.length - 1; i++)
及
你为什么这么认为?@TimCastelijns否则他也会将元素与自身进行比较,这就是为什么我认为它在某个时候会被删除。@TimCastelijns,因为如果
j=I
,那么array[min]。equals(array[j])
将始终为真。因此,所有元素都将替换为空白字符串@enrico.bacis+1Thanks:-)你真的应该在答案中添加这类信息为什么你这么认为?@TimCastelijns否则他也会将元素与自身进行比较,这就是为什么我认为它会在某个时候被删除的原因。@TimCastelijns,因为如果j=I
,那么array[min]。equals(array[j])
将始终为真。因此,所有元素都将替换为空白字符串@enrico.bacis+1Thanks:-)如果(数组[min].equals(数组[j])==true),您真的应该在答案中添加此类信息。?请参见if(数组[min].equals(数组[j])==true)
?看见
for(j = i + 1; j < array.length; j++)
if(array[min] < array[j])
else if(array[min].equals(array[j]))