描述
给定 n 个字符串,请对 n 个字符串按照字典序排列。
数据范围: n (1≤n≤1000 ),字符串长度满足 1≤len≤100
输入描述:
输入第一行为一个正整数n(1≤n≤1000),下面n行为n个字符串(字符串长度≤100),字符串中只含有大小写字母。
输出描述:
数据输出n行,输出结果为按照字典序排列的字符串。
示例1
输入:
9 cap to cat card two too up boat boot
输出:
boat boot cap card cat to too two up
方法一: 使用Arrays.sort()
import java.util.*;
import java.io.*;
public class Main {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
while (in.hasNextInt()) {
int num = in.nextInt();
// String
String[] dic = new String[num];
for(int i=0; i<num; i++){
String b = in.next();
dic[i] = b;
}
Arrays.sort(dic);
for(int j=0; j<num; j++){
System.out.println(dic[j]);
// System.out.println(dic.length);
}
}
}
}
方法二:使用PriorityQueue
import java.util.*;
import java.io.*;
public class Main{
public static void main(String[] args){
Scanner in = new Scanner(System.in);
PriorityQueue<String> myqueue = new PriorityQueue <> ();
while(in.hasNextInt()){
int num = in.nextInt();
for(int i=0; i<num; i++){
String b = in.next();
myqueue.offer(b);
}
// System.out.println(myqueue);
// Iterator<String> it = myqueue.iterator();
// while(it.hasNext()){
// System.out.println(it.next());
// }
while(!myqueue.isEmpty())
System.out.println(myqueue.poll()); //不能用iterator 因为只有队列的头是最小的 使用poll():返回队列的头,并删除
}
}
}
优先队列:
按排序顺序进行搜索
优先队列的元素可能没有排序,但元素总是按排序顺序检索的
参考资料:
Java中Array.sort()的几种用法_eff666的博客-CSDN博客_java中的sort方法
java 中 priorityqueue的使用_liff_lee的博客-CSDN博客_java priorityqueue