1185 城市名排序

40 篇文章 3 订阅

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;
    }
    @Override
    public 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]);
		}
	}


    
}


  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值