在我的编码中,我正在根据名称对输出进行排序。但是,如果我输入相同的名称,则数组保持不变。有什么办法,当名字相同时,数字将被排序?预先感谢。
public class InsertionSort {
/*Function to sort array using insertion sort*/
void sort(String str[])
{
int n = str.length;
for (int i=1; i<n; ++i)
{
String key = str[i];
int j = i-1;
/* Move elements of arr[0..i-1], that are
greater than key, to one position ahead
of their current position */
while (j >= 0 && key.compareTo(str[j]) < 0)
{
str[j+1] = str[j];
j = j-1;
}
str[j+1] = key;
}
}
/* A utility function to print array of size n*/
static void printArray(String str[])
{
int n = str.length;
for (int i=0; i<n; ++i)
System.out.print(str[i] + " ");
System.out.println();
}
// Driver method
public static void main(String args[])
{
String[] str ={"asif44","asif435"}; //2 elements
printArray(str);
}
}
答案 0 :(得分:0)
有一种更精确的方法可以做到这一点,将字符串元素添加到集合框架数据类型中并使用collections.sort()方法。
答案 1 :(得分:-1)
您没有在代码中调用sort()方法。另外,您将需要使sort()方法为静态方法,以便能够从main()方法进行调用。
// Driver method
public static void main(String args[])
{
String[] str ={"asif44","asif435"}; //2 elements
**sort(str);**
printArray(str);
}