从控制台输入若干个单词(输入回车结束,中间用逗号隔开),将这些单词按长度排序输出出来,同时要求排序具有稳定性。请用泛型实现。java
时间: 2024-02-25 16:58:57 浏览: 64
好的,这是一个比较简单的排序问题,可以使用冒泡排序或者插入排序来实现。下面是使用插入排序的示例代码:
```java
import java.util.*;
public class WordSorter {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.print("请输入若干个单词(用逗号隔开):");
String input = scanner.nextLine();
String[] words = input.split(",");
List<String> list = Arrays.asList(words);
sort(list);
System.out.println("按长度排序后的单词列表为:");
for (String word : list) {
System.out.println(word);
}
}
public static <T extends Comparable<T>> void sort(List<T> list) {
for (int i = 1; i < list.size(); i++) {
T current = list.get(i);
int j = i - 1;
while (j >= 0 && list.get(j).compareTo(current) > 0) {
list.set(j + 1, list.get(j));
j--;
}
list.set(j + 1, current);
}
}
}
```
这个程序通过 Scanner 从控制台读取输入,然后使用 split 方法将输入的字符串按逗号分隔成单词数组,然后转换成 List。接着调用 sort 方法进行排序,最后输出排序后的结果。
sort 方法使用泛型实现,要求 List 中的元素必须是可比较的,即实现了 Comparable 接口。在排序过程中,我们使用插入排序算法,保证了排序的稳定性。
阅读全文