Java作业-集合排序(TreeMap)

时间:2025-04-04 07:06:39
  • package Five;
  • import ;
  • import ;
  • import ;
  • /**
  • * 有10个U盘,有两个重要的属性:价格和容量。
  • * 编写一个应用程序,使用TreeMap<>类,分别按照价格和容量排序输出10个U盘的详细信息。
  • * @author Vivinia
  • *
  • * 2017年12月25日
  • */
  • //值,容器和价格的封装类
  • public class Disk {
  • double amount; //容量
  • double price; //价格
  • Disk(double amount,double price){
  • this.amount=amount;
  • this.price=price;
  • }
  • }
  • //键,并且重写compareTo方法
  • class Key implements Comparable{
  • double key=0;
  • Key(double key){
  • this.key=key;
  • }
  • @Override
  • public int compareTo(Object o) {
  • Key k=(Key)o;
  • if(this.key==)
  • return 0; //相等返回0
  • else
  • return (int)(this.); //前边的大返回正数,后边的大返回负数
  • }
  • }
  • //测试类
  • class Test{
  • static int i;
  • static Disk disk[];
  • static Key key[];
  • static TreeMap<Key,Disk> treemap;
  • public static void main(String[] args) {
  • treemap=new TreeMap<Key,Disk>();
  • disk=new Disk[6];
  • key=new Key[6];
  • double amount[]= {1,2,4,8,16,32}; //容量数组
  • double price[]= {25,18,32,80,64,120}; //价格数组
  • for(i=0;i<;i++)
  • disk[i]=new Disk(amount[i],price[i]); //将容量和价格一起分装到Disk实例中
  • ("按容量进行排序:");
  • save(amount); //传递容量数据作为键
  • (); //清空之前数据
  • ("按价格进行排序:");
  • save(price); //传递价格数据作为键
  • }
  • //存储方法
  • public static void save(double comKey[]) { //参数为想要作为排序的关键字,可以是容量,也可以是价格
  • for(i=0;i<;i++) {
  • key[i]=new Key(comKey[i]);
  • (key[i],disk[i]);
  • }
  • Collection<Disk> c=(); //获取treemap集合中的值集
  • Iterator<Disk> it=();
  • while(()) {
  • Disk d=();
  • ("容量"++"GB,"++"元");
  • }
  • }
  • }