Description:

小王是公司的仓库管理员,一天,他接到了这样一个任务:从仓库中找出一根钢管。这听起来不算什么,但是这根钢管的要求可真是让他犯难了,要求如下:

1、 这根钢管一定要是仓库中最长的;
2、 这根钢管一定要是最长的钢管中最细的;
3、 这根钢管一定要是符合前两条的钢管中编码最大的(每根钢管都有一个互不相同的编码,越大表示生产日期越近)。

今天刷算法题时,看到这道题,心血来潮想要创建一个钢管类来做,java是面对对象的语言,总不能每次都用C语言一样的思路,接下来就是各种百度,查看别人的代码,终于写出了人生最长的一段代码。
先写类,同时为了后面可以排序,继承了Serializable和Comparable接口,还学会了@Override的使用。

import java.util.*;
import java.io.Serializable;
class pipe implements Serializable, Comparable<pipe>{private  long num;private  Integer length;private  int coarse;public pipe(int length,int coarse,int num) {this.num=num;this.length =length;this.coarse=coarse;}//构造方法public long getnum() {return num;}public int getlength() {return length;}public int getcoarse() {return coarse;}@Override/*@Override是伪代码,表示重写(当然不写也可以),不过写上可以让编译器检查验证@Override下面的方法名是否是你父类中所有的,如果没有则报错。没有写上@Override,如果写错方法名,编译器会以为是子类自己增加个新的方法*/public int compareTo(pipe o) {return this.length.compareTo(o.getlength());}@Overridepublic String toString() {return Long.toString(num);}//用于输出
}

然后这时候发现我重写的compareTo();方法只能根据长度排序,而题意是要求根据三个条件排序,于是又写了个继承于Comparator类的EmpComparator子类用来排序。

class EmpComparator implements Comparator<pipe> {@Overridepublic int compare(pipe p1,pipe p2) {int b = 0;//按长度升序排列int a = p1.getlength() - p2.getlength();if (a != 0) {b= (a < 0) ? 2: -1;} else {//按薪水降序排列a = p1.getcoarse() - p2.getcoarse();if (a != 0) {b= (a > 0) ? 1 : -2;}else {//按编号升序排列a = (int) (p1.getnum() - p2.getnum());if (a != 0) {b = (a < 0) ? 1 : -2;}}}return b;}}

最后验证一下:

public class Main{//private static final Logger LOGGER = LoggerFactory.getLogger(Main.class);public static void main(String[] args) {Scanner scan = new Scanner(System.in);pipe[] a = new pipe[scan.nextInt()];List<pipe> list = new ArrayList<pipe>();for(int i=0;i<a.length;i++) {a[i] =new pipe(scan.nextInt(),scan.nextInt(),scan.nextInt());list.add(a[i]);//把对象添加进容器}Collections.sort(list,new EmpComparator());//排序System.out.print(list.get(0));}
}

最后附上结果:

1086: 【基础】精挑细选的钢管相关推荐

  1. 推荐七款精挑细选的电脑软件,欢迎收藏!

    今天小编给大家推荐七款精挑细选的电脑软件,欢迎收藏! 1.HaboBackup 备份软件 这是一款极简备份软件,重装系统或者平时办公文件比较多,习惯性删除的时候,建议对重要文档.图片进行下备份,以防万 ...

  2. 8个精挑细选的适用App,全是黑科技,用起来超爽

    你的手机里都有哪些好用的软件?一些大众的就不说了,下面这8个精挑细选的宝藏App,全是黑科技,用起来超爽! 01&小睡眠一款助眠软件,通过各种音频,让你缓解压力.快速入睡:提供了白噪音.冥想曲 ...

  3. android9.0官方壁纸,谷歌出品:安卓9.0原生春天主题壁纸 每一张都是谷歌的精挑细选!...

    原标题:谷歌出品:安卓9.0原生春天主题壁纸 每一张都是谷歌的精挑细选! 安卓系统的碎片化问题一直是困扰谷歌以及安卓生态系统的最大的问题,Android 8.0发布已经一年多,但却仅仅只有2%左右的用 ...

  4. android9.0官方壁纸,安卓福利:全新Android 9.0原生壁纸 每一张都是谷歌的精挑细选!...

    原标题:安卓福利:全新Android 9.0原生壁纸 每一张都是谷歌的精挑细选! 至今,安卓碎片化的程度依然没有得到缓解,Android 8.0发布已经一年多,但却仅仅只有2%左右的用户成功尝到了奥利 ...

  5. 精挑细选100+技术公众号优秀文章

    长按识别关注 此号精挑细选100+技术公众号优秀文章(包括百度,阿里,腾讯,美团等),让你读到最好的文章. 公众号:"1024hub",关注创业和技术,将作为优秀文章的集散地: 每 ...

  6. 华为智慧屏 鸿蒙,精挑细选的高品质大屏,新一代华为智慧屏V系列不要错过

    原标题:精挑细选的高品质大屏,新一代华为智慧屏V系列不要错过 电商618如今已经发展成为零售行业的购物狂欢季,也是消费者入手家电产品的好时机.随着华为智慧屏的崛起,大屏电视成为了备受关注的品类,很多消 ...

  7. 精挑细选【三十首】车载导航专用高清mv视频影音库打包下载

    别的网站找到的车载mv下载,在做开发的时候可以用来调试,标准我AVI格式,写到这里稍做记录,以后嵌入式开发以后. 把AVI文件,复制到模拟器直接播放. 精挑细选[三十首]车载导航专用高清mv视频影音库 ...

  8. 精挑细选几十款“装机必备软件”集中下载

    众里"寻她"千百度--精挑细选几十款"装机必备软件"集中下载 2|字号 订阅 以前写过类似的文章,现在重新挑选并更新到最新版(或经典版).这几十款装机必备软件, ...

  9. 「数据密集型系统搭建」原理篇|数据类型不怕精挑细选

      本篇围绕MySQL数据库的底层存储模型.列类型来聊聊数据库表设计及建模中要注意的事项,剖析最根源的底层物理存储文件,用最真实的数据剖析来证明和解答开发过程中的疑惑.   在一些技术谈资.面试沟通过 ...

最新文章

  1. JSON数据解析及gson.jar包
  2. 【jQuery 区别】attr()和prop()的区别
  3. WSP框架:WEB组件的原理
  4. H5开发中的问题总结
  5. python怎么调出某年某月日历_Python 写的计算指定年指定月日历的脚本
  6. 如何修改IE浏览器的User-Agent用户代理字符串信息
  7. java+stream+源码分析_java8学习之Stream源码分析
  8. Win2003环境下简单的安全配置
  9. 冲击波病毒攻击-《截获网站服务器数据》
  10. Web3.js 学习
  11. 加载oracle属性文件,关于属性文件的详细介绍
  12. TCP拥塞控制和TCP流量控制
  13. mac计算机属性怎么找,删除Mac OS文件系统的附加属性
  14. px和毫米之间的转换
  15. 《机器学习实战》机器学习概述
  16. javaweb出现Exception invoking method manageApp java.lang.IllegalStateException: ContainerBase.addChild
  17. H2 DataBase入门
  18. 数据分析师认证考试形式发布,如何掌握考试重难点?
  19. 【散文】一场白露,怎知秋心
  20. SQLServer的链接服务器

热门文章

  1. WebRTC,P2P技术,IPv6的一些思考
  2. 《操作系统概念》知识点期末复习整理
  3. 前端必经之路:CSS页面布局(深入理解浮动布局、定位布局、圣杯布局和双飞翼布局等重要布局方案)
  4. linux下windows软件的代替品
  5. 物流快递单号查询接口种类及对接方法
  6. abb变频器580系列改中文_ABB变频器ACQ580A介绍
  7. Mysql的distinct、order by和group by冲突报错
  8. 封装win7系统、制作win7GHO镜像、制作一个自定义的镜像文件具体步骤、制作Win10镜像gho...
  9. 百度路书实现车辆轨迹动态回放功能-javascrpt版
  10. 【LeetCode】878. 第 N 个神奇数字