请java人员帮个忙!关于集合框架的一个程序!
发布网友
发布时间:2022-05-02 04:51
我来回答
共2个回答
热心网友
时间:2022-06-28 09:39
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;
public class MedalRank {
public static void main(String[] args) {
Country c1 = new Country("China",100,80,100);
Country c2 = new Country("American",10,100,10);
Country c3 = new Country("Japan",50,50,50);
List<Country> list = new ArrayList<Country>();
list.add(c1);
list.add(c2);
list.add(c3);
//金牌榜
Collections.sort(list, new GoldComparator());
System.out.println("\r\nGold medal Rank as follow:");
for(Country c : list) {
System.out.println(c.name);
}
//银牌榜
Collections.sort(list, new SilverComparator());
System.out.println("\r\nSilver medal Rank as follow:");
for(Country c : list) {
System.out.println(c.name);
}
//铜牌榜
Collections.sort(list, new CopperComparator());
System.out.println("\r\nCopper medal Rank as follow:");
for(Country c : list) {
System.out.println(c.name);
}
}
}
class GoldComparator implements Comparator<Country> {
@Override
public int compare(Country c1, Country c2) {
return c2.gold - c1.gold;
}
}
class SilverComparator implements Comparator<Country> {
@Override
public int compare(Country c1, Country c2) {
return c2.silver - c1.silver;
}
}
class CopperComparator implements Comparator<Country> {
@Override
public int compare(Country c1, Country c2) {
return c2.copper - c1.copper;
}
}追问能加一下注释嘛?我刚学这个,还有点看不太懂!谢谢了!
追答我们把已经new好的Country对象set进一个List里面,接着就要对这个List进行操作,让它sort。
注意到jdk里面的Collections工具类里面有此方法:Collections.sort(list, new GoldComparator());
此方法可以操作这个List,但是需要我们对这个List里面包含的元素,具体表现为Country对象,进行自定义的比较,是为了让sort方法知道具体如何比较排序Country对象。
接着定义了三个Comparator,分别为金银铜的,也就是具体如何比较的GoldComparator ,SilverComparator ,CopperComparator ,这三个类都需要实现Comparator接口,重写其public int compare方法,该方法返回一个int,小于0代表第一个Country对象小于第二个Country对象,大于0代表第一个Country对象大于第二个Country对象,等于就是相等
具体可以参考阅读JDK帮助文档,里面的介绍相当详细
热心网友
时间:2022-06-28 09:39
功能,在Java中,类库以包(package)的形式提供,不同版本的Java提供不同的包,以面向特定的应用。
Java2平台包括标准版(J2SE)、企业版(J2EE)和微缩版(J2ME)三个版本:
Standard Edition(标准版) J2SE 包含那些构成Java语言核心的类。
比如:数据库连接、接口定义、输入/输出、网络编程
Enterprise Edition(企业版) J2EE 包含J2SE 中的类,并且还包含用于开发企业级应用的类。
比如:EJB、servlet、JSP、XML、事务控制
Micro Edition(微缩版) J2ME 包含J2SE中一部分类,用于消费类电子产品的软件开发。
比如:呼机、智能卡、手机、PDA、机顶盒
他们的范围是:J2SE包含于J2EE中,J2ME包含了J2SE的核心类,但新添加了一些专有类
应用场合,API的覆盖范围各不相同。
笼统的讲,可以这样理解:
J2SE是基础;
压缩一点,再增加一些CLDC等方面的特性就是J2ME;
扩充一点,再增加一些EJB等企业应用方面的特性就是J2EE。
补充一点J2EE更恰当的说,应该是JAVA2企业开发的技术规范,不仅仅是比标准版多了一些类。