Java中集合的程序练习
来源:互联网 发布:dnf组队队员网络冲突 编辑:程序博客网 时间:2024/06/05 09:13
一、运用所学集合的知识,写出一个奥运会奖牌榜排序程序,具体要求如下:
1.每个国家都分别拥有金牌银牌铜牌属性。
2.对各个国家实现奖牌榜排序,排序规则为:先比较金牌,如果金牌数相同则比较银牌,如果银牌数相同则比较铜牌
如果铜牌数也相同,则比较国家的名字
3.打印输出奖牌榜
package day5;
import java.util.ArrayList;
/**
* 实现排序接口,能够使用 Collections 类排序
*
* @author davyzhu
*
*/
public class Country implements Comparable {
private int goldNum;
private int silverNum;
private int bronzeNum;
private String name;
/**
* 构造方法
*
* @param name
* @param goldNum
* @param silverNum
* @param bronzeNum
*/
public Country(String name, int goldNum, int silverNum, int bronzeNum) {
this.name = name;
this.goldNum = goldNum;
this.silverNum = silverNum;
this.bronzeNum = bronzeNum;
}
/**
*
* 重写toString()方法
*/
public String toString() {
return "国家 :" + this.name + " 金牌数:" + this.goldNum + " 银牌数:"
+ silverNum + " 铜牌数:" + bronzeNum;
}
/**
* 通过金牌,银牌,铜牌数排序
*
*/
public int compareTo(Object o) {
Country p = (Country) o;
int s;
if ((s = (p.getGoldNum() - this.getGoldNum())) != 0)
return s;
else if ((s = (p.getSilverNum() - this.getSilverNum())) != 0)
return s;
else if ((s = (p.getBronzeNum() - this.getBronzeNum())) != 0)
return s;
return (compareTo(p.getName(), this.getName()));
}
//*******比较国家名字*******
private int compareTo(String name2, String name3) {
int s, i = 0;
if ((s = (name3.charAt(i) - name2.charAt(i))) != 0)
return s;
else
i++;
return 0;
}
/**
*
* 国家名字相同的处理
* @return
*/
public boolean equals(Object o){
boolean b = false;
ArrayList l = (ArrayList) o;
return b;
}
public int getGoldNum() {
return goldNum;
}
public int getSilverNum() {
return silverNum;
}
public String getName() {
return name;
}
public int getBronzeNum() {
return bronzeNum;
}
}
package day5;
/**
*
* 测试类
*/
import java.util.ArrayList;
import java.util.Collections;
import java.util.Iterator;
import java.util.List;
import junit.framework.TestCase;
import static java.lang.System.out;
public class test extends TestCase {
public void test() {
Country c1 = new Country("China", 51, 10, 37);
Country c2 = new Country("Austalia", 15, 22, 8);
Country c3 = new Country("Russian", 21, 22, 21);
Country c4 = new Country("ASA", 21, 22, 21);
Country c5 = new Country("ASB", 21, 22, 21);
ArrayList list = new ArrayList();
// 添加元素
list.add(c1);
list.add(c2);
list.add(c3);
list.add(c4);
list.add(c5);
this.print(list);
// Collections 排序,需要用到compareTo()方法
Collections.sort(list);
out.println("******排序后的列表******");
this.print(list);
}
/**
* 打印 list 中所有对象
*
* @param list
*/
public void print(List list) {
Iterator it = list.iterator();
while (it.hasNext()) {
Object o = it.next();
// 输出对象本身时,会自动调用 toString() 方法
// 如果对象本身没有重写 toString() ,就会去调用父类 Object 中的 toString() 方法
// Object 中规定 toString() 会打印出对象所在的包名.类名+hashCode
out.println(o);
}
}
}
- Java中集合的程序练习
- Java中集合 练习 计算疯狂值
- java中集合的知识点
- java中集合的遍历
- java中集合的总结
- java中集合的分类
- Java中集合的讲解
- java中集合的总结
- java中集合的概念
- java中集合的特点
- java中集合类的总结
- java中集合的选择 初学者必备
- JAVA中集合的排序方法
- Java中集合和数组的区别
- java中集合与数组的区别
- 关于java中集合类的理解
- Java中集合类的对比总结
- java中集合类的用法详解
- 女人,百花千红你最美
- 如何在触发器中调用select语句?
- cocos2dx-js学习笔记(一)环境搭建
- 丁磊:别把不吭声的鳄鱼当壁虎 没觉得马云多了不起
- navicat 10.1.7注册码
- Java中集合的程序练习
- java webService 入门
- 键盘样式风格有关设置
- javascript去掉字符串中重复的字符
- Http介绍
- scp 在不同主机之间数据传输
- 女人,百花千红你最美
- Xamarin ios C#苹果应用开发第二讲配置环境和编写代码
- 关于Oracle中表空间的一些讨论