题目描述
给定n个字符串,请对n个字符串按照字典序排列。
输入描述:
输入第一行为一个正整数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
思路:
1、直接Arrays.sort排序
import java.util.*; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); while (sc.hasNext()){ int n = sc.nextInt(); String [] arr = new String[n]; for(int i=0;i<n;i++){ String str = sc.next(); arr[i] = str; } Arrays.sort(arr); for(int i=0;i<arr.length;i++){ System.out.println(arr[i]); } } } }
2、map.getOrDefault方法:Map集合中有这个key时,就使用这个key值,如果没有就使用默认值defaultValue
Map中采用Entry内部类来表示一个映射项,映射项包含Key和Value
Map.Entry里面包含getKey()和getValue()方法
Set<Entry<T,V>> entrySet()
该方法返回值就是这个map中各个键值对映射关系的集合。
import java.util.*; public class Main{ public static void main(String[] args) { Scanner scanner = new Scanner(System.in); Map<String,Integer> map = new TreeMap<String,Integer>(); int n = scanner.nextInt(); for(int i = 0;i < n;i ++) { String s = scanner.next(); map.put(s,map.getOrDefault(s, 0) + 1); } for (Map.Entry<String, Integer> entry : map.entrySet()) { for(int i = 0;i < entry.getValue();i ++) { System.out.println(entry.getKey()); } } scanner.close(); } }