1185 城市名排序
Time Limit : 2000/1000 MS(Java/Others) | Memory Limit :65536/32768 KB(Java/Others)
Submits : 3989 | Solved : 2049
Description
从键盘输入n个城市名,进行升序排序并输出。
Input
第一行输入一个整数n,表示有n个城市,n不超过100。
接着输入n个字符串,每个字符串代表一个城市名,一个字符串内部不包含空格,字符串长度不超过100。
Output
输出排序后的城市名字。每个城市名占据一行。
Sample Input
10 nignbo hangzhou quzhou fuyang shaoxing ninghai lishui weinan fujian guangzhou
Sample Output
fujian fuyang guangzhou hangzhou lishui ningbo ninghai quzhou shaoxing weinan
HINT
Source
NBU OJ
第一种方法:重写set中的方法(朋友写的方法)
package com.tjrac_java_2;import java.util.Scanner; import java.util.TreeSet;public class test3 {public static void main(String[] args) {TreeSet<City> tree=new TreeSet<City>();Scanner sc=new Scanner(System.in);int sum=sc.nextInt();for (int i = 0; i < sum; i++) {City city=new City();city.setName(sc.next());tree.add(city);}sc.close();for (City city:tree) {System.out.println(city.getName());}} } class City implements Comparable{private String name;public void setName(String name){this.name=name;}public String getName(){return this.name;}@Overridepublic int compareTo(Object o) {City city=(City) o;if(this.name.hashCode()==city.name.hashCode()){return -1;}return this.name.compareTo(city.name);} }
第二种方法:利用排序算法每个字符串进行比较
package com.test;import java.util.Scanner;public class test3 {private static Scanner sc;public static void main(String[] args){sc = new Scanner(System.in);int s=sc.nextInt();String str[]=new String[1000];for(int i=0;i<s;i++){String st=sc.next();str[i]=st;}for(int i=0;i<s;i++){for(int j=i+1;j<s;j++){if(str[i].compareTo(str[j])>0){String cc=null;cc=str[i];str[i]=str[j];str[j]=cc;}}}for(int i=0;i<s;i++){System.out.println(str[i]);}}}