对U盘信息排序

有10个U盘,有两个重要的属性,即价格和容量,编写一个应用程序,
使用TreeMap<K,V>类,分别按价格和容量排序输出10个U盘的详细信息

趁你不注意直接上代码

import java.util.*;

public class Demo2 {
        public static void main(String[] args) {
            System.out.println("对价格进行排序:");
            TreeMap<UP, String> up = new TreeMap<>(new MyComparator1());

            up.put(new UP("32G", 64), "1");
            up.put(new UP("16G", 39), "2");
            up.put(new UP("64G", 89), "3");
            up.put(new UP("8G", 59), "4");
            up.put(new UP("16G", 49), "5");
            up.put(new UP("32G", 99), "6");
            up.put(new UP("64G", 119), "7");
            up.put(new UP("32G", 159), "8");
            up.put(new UP("16G", 69), "9");
            up.put(new UP("64G", 216), "10");

            Set<Map.Entry<UP, String>> entrySet = up.entrySet();        //keySet() : 迭代后只能通过get()取key;再根据key值取value,只能对一个(key或者value)遍历
                                                                        //entrySet():迭代后可以e.getKey(),e.getValue()取key和value。
            for (Map.Entry<UP, String> next : entrySet) {
                UP key = next.getKey();
                String value = next.getValue();
                System.out.println(key + "是" + value + "号U盘");
            }
            System.out.println();
            System.out.println("对容量进行排序:");
            TreeMap<UP, String> up2 = new TreeMap<>(new MyComparator2());
            up2.put(new UP("32G", 64), "1");
            up2.put(new UP("16G", 39), "2");
            up2.put(new UP("64G", 89), "3");
            up2.put(new UP("08G", 59), "4");
            up2.put(new UP("16G", 49), "5");
            up2.put(new UP("32G", 99), "6");
            up2.put(new UP("64G", 119), "7");
            up2.put(new UP("32G", 159), "8");
            up2.put(new UP("16G", 69), "9");
            up2.put(new UP("64G", 216), "10");

            Set<Map.Entry<UP, String>> entrySet2 = up2.entrySet();        //keySet() : 迭代后只能通过get()取key;再根据key值取value,只能对一个(key或者value)遍历
            //entrySet():迭代后可以e.getKey(),e.getValue()取key和value。
            Iterator<Map.Entry<UP, String>> it2 = entrySet2.iterator();

            while (it2.hasNext()) {
                Map.Entry<UP, String> next = it2.next();
                UP key = next.getKey();
                String value = next.getValue();
                System.out.println(key + "是" + value+"号U盘");
            }
        }
    }

    class MyComparator1 implements Comparator<UP> {
        @Override
        public int compare(UP p1, UP p2) {
            if (p1.getPrice() > p2.getPrice()) {
                return -1;
            } else if (p1.getPrice() < p2.getPrice()) {
                return 1;
            }
            return 0;
        }
    }

    class MyComparator2 implements Comparator<UP> {
    @Override
    public int compare(UP p1, UP p2) {
        if (p1.getCapacity().compareTo(p2.getCapacity())>0) {
            return -1;
        } else if (p1.getCapacity().compareTo(p2.getCapacity())<=0) {
            return 1;
        }
        return 0;
    }
    }

    class UP implements Comparable<UP> {
        private String capacity;
        private int price;

        public String getCapacity() {
            return capacity;
        }

        public int getPrice() {
            return price;
        }

        @Override
        public int compareTo(UP p) {
            if (this.capacity.compareTo(p.capacity)>0) {
                return 1;
            } else if (this.capacity.compareTo(p.capacity)<=0) {
                return -1;
            }
            return 0;
        }

        @Override
        public String toString() {
            return "UP{" +
                    "容量为:'" + capacity +
                    ",价格为:" + price +
                    '}';
        }

        public UP(String capacity, int price) {
            this.capacity = capacity;
            this.price = price;
        }
    }

TIPS!!:【新人发帖】以上代码仅作参考,由于compareTo方法只能比较两个字符串相同位置的ASCII码,如果把“08G”改为“8G”,在对容量进行排序的时候,这个8个G的u盘会直接爬到容量最高,这好吗,这不好,不过目前我也不知道怎么解决

(代码有点憨,希望有大佬能给出更好的解决方案)

  • 1
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
如果您想要下载一款U盘歌曲排序软件,您可以通过以下方式来找到适合您需求的软件: 1. 在电脑上打开浏览器,进入一个可信赖的下载软件网站,例如CNET、Softpedia或者官方网站等。 2. 在网站的搜索栏中输入关键词“U盘歌曲排序软件”。 3. 检查搜索结果,看看是否有与您需求相符的软件。您可以选择按照软件的评价、用户评论、下载量等因素进行筛选,以便找到最合适的软件。 4. 点击下载按钮,确保选择正确的操作系统版本,如Windows、Mac或Linux等。 5. 下载完成后,双击下载好的软件进行安装。 6. 根据软件的安装向导,按照步骤进行安装。通常情况下,只需点击“下一步”即可完成安装。 7. 完成安装后,打开软件。根据软件界面的提示,插入U盘,软件将自动扫描U盘中的音乐文件。 8. 一旦扫描完成,您可以使用软件提供的各种排序功能来整理和管理U盘中的歌曲。这些功能可能包括按照歌曲名、艺术家、专辑、流派、年代等进行排序。 9. 完成歌曲排序后,您可以将U盘连接至音乐播放设备,例如电脑、车载音乐系统或者智能手机等,以便更轻松地找到和播放您想要的歌曲。 请注意,在下载和安装软件时要确保从可信赖的网站下载,并确保电脑具有良好的防病毒软件以确保安全性。此外,建议阅读其他用户的评价和评论以了解软件的实际效果和可靠性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值