奥运排序法

Toby..... 2016-08-10 03:30:49
定义一个国家类。有几个个国家。
方法里面就是有金牌,银牌,铜牌,用冒泡和循环来比较金牌多少,多的国家排第一,如果相同就比较银牌,银牌相同就比较铜牌,若两支或以上的队伍在同一时间拥有相同的金、银、铜牌枚数,则排同一名次。
最后输出国家每名次 。
求java代码。
...全文
269 7 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
lucifarcyl 2016-08-11
  • 打赏
  • 举报
回复
引用 3 楼 qq_35837697 的回复:
国家类大小要怎么做啊。可以打一下嘛
像我上面那样实现Comparable接口再重写CompareTo方法就可以自己设置怎么比较两个类的大小,这种方法是可以使用java的数组或者List本身的sort进行排序
Toby..... 2016-08-11
  • 打赏
  • 举报
回复
也是进金牌银牌铜牌相比较。最后输出国家名次,用的是数组和排序
lucifarcyl 2016-08-11
  • 打赏
  • 举报
回复
引用 5 楼 qq_35837697 的回复:
引用 4 楼 lucifarcyl 的回复:
[quote=引用 3 楼 qq_35837697 的回复:] 国家类大小要怎么做啊。可以打一下嘛
像我上面那样实现Comparable接口再重写CompareTo方法就可以自己设置怎么比较两个类的大小,这种方法是可以使用java的数组或者List本身的sort进行排序
可以帮我完善一下这个程序么,别人出的题目,我不会,希望简单能让我理解 谢谢! package com.test; import java.util.ArrayList; import java.util.List; public class Test { public static void main(String[] args) { /* * 约定 数组中下标对应的值 * 0金牌数 * 1银牌数 * 2铜牌数 * 3名次默认为0 */ int[] zg={2,2,3,0}; //中国 int[] mg={2,2,4,0}; //美国 int[] els={1,3,4,0}; //俄罗斯 int[] yg={1,4,5,0}; //英国 int[] jnd={1,4,5,0}; //加拿大 //第一种方案使用二维数组方式 int[][] rq=new int[5][4]; rq[0]=zg; rq[1]=mg; rq[2]=els; rq[3]=yg; rq[4]=jnd; //排序--自行补齐 for(int i=0;i<rq.length;i++) { //取金牌数 rq[0][0] //取银牌数rq[0][1] } //第二种方案 使用list List list =new ArrayList(); list.add(zg); list.add(mg); list.add(els); list.add(yg); list.add(jnd); //循环list 获取内容排序 自行补齐 for(int i=0;i<list.size();i++) { } } }[/quote]这种方法太麻烦好久没这样弄了,我也不太清楚该怎么写啊
Toby..... 2016-08-11
  • 打赏
  • 举报
回复
引用 4 楼 lucifarcyl 的回复:
引用 3 楼 qq_35837697 的回复:
国家类大小要怎么做啊。可以打一下嘛
像我上面那样实现Comparable接口再重写CompareTo方法就可以自己设置怎么比较两个类的大小,这种方法是可以使用java的数组或者List本身的sort进行排序
可以帮我完善一下这个程序么,别人出的题目,我不会,希望简单能让我理解 谢谢! package com.test; import java.util.ArrayList; import java.util.List; public class Test { public static void main(String[] args) { /* * 约定 数组中下标对应的值 * 0金牌数 * 1银牌数 * 2铜牌数 * 3名次默认为0 */ int[] zg={2,2,3,0}; //中国 int[] mg={2,2,4,0}; //美国 int[] els={1,3,4,0}; //俄罗斯 int[] yg={1,4,5,0}; //英国 int[] jnd={1,4,5,0}; //加拿大 //第一种方案使用二维数组方式 int[][] rq=new int[5][4]; rq[0]=zg; rq[1]=mg; rq[2]=els; rq[3]=yg; rq[4]=jnd; //排序--自行补齐 for(int i=0;i<rq.length;i++) { //取金牌数 rq[0][0] //取银牌数rq[0][1] } //第二种方案 使用list List list =new ArrayList(); list.add(zg); list.add(mg); list.add(els); list.add(yg); list.add(jnd); //循环list 获取内容排序 自行补齐 for(int i=0;i<list.size();i++) { } } }
Toby..... 2016-08-10
  • 打赏
  • 举报
回复
国家类大小要怎么做啊。可以打一下嘛
lucifarcyl 2016-08-10
  • 打赏
  • 举报
回复
为什么不直接让国家这个类有大小呢,然后sort一下就好了
public class Country implements Comparable<Country>{

	public int gold_num;
	public int silver_num;
	public int bronze_num;
	
	public Country(int gold_num, int silver_num, int bronze_num) {
		super();
		this.gold_num = gold_num;
		this.silver_num = silver_num;
		this.bronze_num = bronze_num;
	}

	public int getGold_num() {
		return gold_num;
	}

	public void setGold_num(int gold_num) {
		this.gold_num = gold_num;
	}

	public int getSilver_num() {
		return silver_num;
	}

	public void setSilver_num(int silver_num) {
		this.silver_num = silver_num;
	}

	public int getBronze_num() {
		return bronze_num;
	}

	public void setBronze_num(int bronze_num) {
		this.bronze_num = bronze_num;
	}

	@Override
	public String toString() {
		return "Country [gold_num=" + gold_num + ", silver_num=" + silver_num + ", bronze_num=" + bronze_num + "]";
	}

	@Override
	public int compareTo(Country o) {
		if(this.gold_num>o.gold_num){
			return 1;
		}else if(this.gold_num<o.gold_num){
			return -1;
		}else if(this.gold_num==o.gold_num){
			if(this.silver_num>o.silver_num){
				return 1;
			}else if(this.silver_num<o.silver_num){
				return -1;
			}else if(this.silver_num==o.silver_num){
				if(this.bronze_num>o.bronze_num){
					return 1;
				}else if(this.bronze_num<o.bronze_num){
					return -1;
				}else if(this.silver_num==o.silver_num){
					return 0;
				}
			}
		}
		return 0;	
	}
}
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;

public class Test {

	public static void main(String[] args) {
		List<Country> countries=new ArrayList<Country>();
		countries.add(new Country(1,3,5));
		countries.add(new Country(5,4,5));
		countries.add(new Country(8,3,6));
		countries.add(new Country(1,4,5));
		countries.add(new Country(1,4,6));
		countries.add(new Country(1,3,7));
		countries.add(new Country(2,7,5));
		countries.add(new Country(9,4,5));
		countries.add(new Country(9,3,5));
		countries.add(new Country(9,4,5));
		System.out.println(countries);
		Collections.sort(countries);
		Collections.reverse(countries);
		System.out.println(countries);
	}
}
kahnyy5202015 2016-08-10
  • 打赏
  • 举报
回复
网上不是很多冒泡排序的方法么。。实体类自己写就好了

51,396

社区成员

发帖
与我相关
我的任务
社区描述
Java相关技术讨论
javaspring bootspring cloud 技术论坛(原bbs)
社区管理员
  • Java相关社区
  • 小虚竹
  • 谙忆
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧