奥运排序法

Toby..... 2016-08-10 03:30:49
定义一个国家类。有几个个国家。
方法里面就是有金牌,银牌,铜牌,用冒泡和循环来比较金牌多少,多的国家排第一,如果相同就比较银牌,银牌相同就比较铜牌,若两支或以上的队伍在同一时间拥有相同的金、银、铜牌枚数,则排同一名次。
最后输出国家每名次 。
求java代码。
...全文
261 7 打赏 收藏 转发到动态 举报
写回复
用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
  • 打赏
  • 举报
回复
网上不是很多冒泡排序的方法么。。实体类自己写就好了
教学目标 知识与技能 了解Excel排序和筛选的意义;掌握Excel表格中数据的排序和筛选操作。 过程与方 以"讲解—演示—实践"为主线,并配以任务驱动,让学生熟练应用Excel的排序与筛选功能对日常生活中的表格进行处理。 情感态度与价值观 1、通过实例操作提高学生分析问题、解决问题的能力; 2、通过分小组分工协作完成任务, 培养学生自主学习意识、团结协作精神及竞争意识 计算机应用基础WindowsXPOffice2003全文共16页,当前为第1页。 重点难点 教学重点 排序和筛选的操作方 教学难点 1、排序的应用 2、筛选条件的设置 计算机应用基础WindowsXPOffice2003全文共16页,当前为第2页。 教学过程 教师:同学们是否还记得2008北京奥运会奖牌的情况? 引入课题 问题 计算机应用基础WindowsXPOffice2003全文共16页,当前为第3页。 教师:大家在找的过程中觉得有什么不方便?如果给奖牌表排序应按什么规则? 学生:比比看:请同学们看奖牌表,找出得到金牌最多的前三个国家,看谁的速度最快。 答案:先看金牌数量,金牌多者排在前面,如果金牌数一样多,则看银牌数;如果银牌数也一样多,则看铜数。 计算机应用基础WindowsXPOffice2003全文共16页,当前为第4页。 教学过程 数据的排序步骤: 1、选中数据清单中的一个单元格; 2、打开排序对话框,设置关键字,排序方式(升序或降序);确定。 数据排序 师演示 1 小提示: 排列汉字的方有两种,即字母顺序和笔画顺序,默认方是按字母顺序排序。(在选项中设置。) 计算机应用基础WindowsXPOffice2003全文共16页,当前为第5页。 教学过程 数据排序 生操作 1 1、给出学校的入学情况表,按总分从高到底排序; 2、班级要安排座位,根据10机电2班同学的身高从矮到高排序; 任务一 经小组讨论,按总分的话关键字段要设置成"总分"并降序,按身高排序关键字段必须是"身高",并且要升序。 计算机应用基础WindowsXPOffice2003全文共16页,当前为第6页。 教学过程 数据筛选 引入 2 教师:给出学校的入学情况表,如果只想显示10机电2班的学生信息,怎么做? 所谓数据筛选就是只显示那些满足条件的记录,隐藏其他记录。 计算机应用基础WindowsXPOffice2003全文共16页,当前为第7页。 教学过程 自动筛选 师讲解 2 自动筛选步骤: 单击数据清单中的一个单元格,在选择【数据】/【筛选】/【自动筛选】命令。 小提示: 在自动筛选状态下,用户可以从字段下拉列表框中选择一字段值进行筛选,也可以自定义一个条件进行筛选,还可以进行多次筛选。 计算机应用基础WindowsXPOffice2003全文共16页,当前为第8页。 教学过程 自动筛选 师演示 2 小提示: 数据清单经过筛选后,将只显示那些满足条件的记录,此时用户可以取消筛选,方如下:选择【数据】/【筛选】/【自动筛选】 教师:从字段下拉列表框中选择一个值,筛选出字段为该值的所有记录。比如在入学情况表中筛选出10机电2班的学生信息。 一 .选择字段值进行筛选 计算机应用基础WindowsXPOffice2003全文共16页,当前为第9页。 教学过程 自动筛选 生操作 2 任务二 在入学情况表中筛选所有男生信息 经小组讨论,选择用自动筛选,小组成员分工完成任务,再一起交流 计算机应用基础WindowsXPOffice2003全文共16页,当前为第10页。 二 .自定义筛选 教学过程 自定义筛选 师演示 2 教师:在入学情况表中筛选出数学成绩在80分以上的学生信息。 如果对某一个字段要按条件进行筛选,可在相应字段的下拉列表框中选择"自定义"。打开【自定义自动筛选方式】对话框,在改对话框中可进行以下操作: 可对这个字段定义两个条件 选择"与"单选框,可筛选出同时满足两个条件的记录(例:在 入学情况表中筛选语文成绩在60分到80分之间的学生。) 选择"或"单选框,可筛选出满足任何一个条件的记录 (例:在入学情况表中筛选10机电1班和10机电2班的学生。) 计算机应用基础WindowsXPOffice2003全文共16页,当前为第11页。 教学过程 自定义筛选 生操作 2 任务三 在入学情况表中筛选身高在160厘米到170厘米之间的学生。 经小组讨论,选择用自动筛选,小组成员分工完成不同任务,再一起交流 计算机应用基础WindowsXPOffice2003全文共16页,当前为第12页。 教学过程 多次筛选 师讲解 2 三 .多次筛选 对一个字段进行筛选之后,还可以用以上方对其他字段进行筛选。 教师:在入学情况表中筛选出语文成绩和数学成绩都在80分以上的学生信息。 计算机应用

50,523

社区成员

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

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