【157天】尚学堂高琪Java300集视频精华笔记(126)
【157天】尚学堂高琪Java300集视频精华笔记(126)
决断。。。
第126集:引用类型_自定义数据排序
使用Comparable
实体类中实现了ComparaTo方法
package test126;import java.text.SimpleDateFormat;
import java.util.Date;public class NewsItem1 implements Comparable<NewsItem1> {private String title;private int hits;private Date pubTime;public void setTitle(String title){this.title = title;}public String getTitle(){return title;}public void setHits(int hits){this.hits = hits;}public int getHits(){return hits;}public void setPubtime(Date pubTime){this.pubTime = pubTime;}public Date getPubtime(){return pubTime;}public NewsItem1(){}public NewsItem1(String title,int hits,Date pubTime){this.title = title;this.hits = hits;this.pubTime = pubTime;}public int compareTo(NewsItem1 o){//点击量升序,时间降序int result;result = this.hits - o.hits; //先比较点击量if(result==0){result = this.pubTime.compareTo(pubTime);//再比较时间if(result==0){result = this.title.compareTo(title);//最后再比较标题字符串}}return -result;// Collection.sort按从小到大排序,而我想要从小到大排序的结果,所以加负号}public String toString(){StringBuilder sb = new StringBuilder();sb.append("标题:").append(this.title);sb.append(",时间:").append(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(this.pubTime));sb.append(",点击量").append(this.hits).append("\n");return sb.toString();}}
Collection.sort是升序
package test126;import java.util.ArrayList;
import java.util.Collections;
import java.util.Date;
import java.util.List;public class MySort1 {public static void main(String[] args){List<NewsItem1> news = new ArrayList<NewsItem1>();news.add(new NewsItem1("哈哈哈哈",50,new Date()));news.add(new NewsItem1("呵呵呵呵",100,new Date(System.currentTimeMillis()-1000*60*60)));news.add(new NewsItem1("妹妹诶诶",0,new Date(System.currentTimeMillis()+1000*60*60)));System.out.println("排序前"+news);Collections.sort(news);System.out.println("排序后"+news);}
}
使用Comparator
实体类很干净~功能很单一
package test126;import java.text.SimpleDateFormat;
import java.util.Date;public class NewsItem2 {private String title;private int hits;private Date pubTime;public void setTitle(String title){this.title = title;}public String getTitle(){return title;}public void setHits(int hits){this.hits = hits;}public int getHits(){return hits;}public void setPubTime(Date pubTime){this.pubTime = pubTime;}public Date getPubTime(){return pubTime;}public NewsItem2(){}public NewsItem2(String title,int hits,Date pubTime){this.title = title;this.hits = hits;this.pubTime = pubTime;}public String toString(){StringBuilder sb = new StringBuilder();sb.append("标题:").append(this.title);sb.append(",时间:").append(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(this.pubTime));sb.append(",点击量").append(this.hits).append("\n");return sb.toString();}}
package test126;import java.util.ArrayList;
import java.util.Collections;
import java.util.Date;
import java.util.List;public class MySort2 {public static void main(String[] args){List<NewsItem2> news = new ArrayList<NewsItem2>();news.add(new NewsItem2("哈哈哈哈哈",50,new Date()));news.add(new NewsItem2("呵呵呵呵",100,new Date(System.currentTimeMillis()-1000*60*60)));news.add(new NewsItem2("妹妹诶",0,new Date(System.currentTimeMillis()+1000*60*60)));System.out.println("排序前"+news);Collections.sort(news,new B());System.out.println("排序后"+news);}
}
采用A方案排序
package test126;import java.util.Comparator;public class A implements Comparator<NewsItem2> {public int compare(NewsItem2 o1,NewsItem2 o2){//点击量升序,时间降序int result;result = o1.getHits() - o2.getHits(); //先比较点击量if(result==0){result = o1.getPubTime().compareTo(o2.getPubTime());//再比较时间if(result==0){result = o1.getTitle().compareTo(o2.getTitle());//最后再比较标题字符串}}return -result;// Collection.sort按从小到大排序,而我想要从小到大排序的结果,所以加负号}
}
采用B方案排序
package test126;import java.util.Comparator;public class B implements Comparator<NewsItem2> {public int compare(NewsItem2 o1,NewsItem2 o2){//字符串长度int result = o1.getTitle().length()-o2.getTitle().length();//再比较时间return -result;}
}
【157天】尚学堂高琪Java300集视频精华笔记(126)相关推荐
- 【160天】尚学堂高琪Java300集视频精华笔记(129)
明天开始,专栏增加一个黑马程序员的课程更新. 其它容器收尾讲解 队列Queue与Deque(单向队列与双向队列) Enumeration(较老的接口,JDK1.5前使用频繁,维护旧系统会用到) Has ...
- 【133天】尚学堂高淇Java300集视频精华笔记(71-72)
第71集:常用类/file类/打印目录树状结构/递归算法 课堂代码 package com.test071;import java.io.File;public class Test071 {publ ...
- 【138天】尚学堂高淇Java300集视频精华笔记(84)
第84集:太阳系模型/基本类的封装/Star类的建立 本集知识点 将对象尽可能的抽象,可以有效减少代码量,比如此例中的Star类 package com.test084_087_solar;impor ...
- 【135天】尚学堂高淇Java300集视频精华笔记(74-76)
第74-75集:异常机制.trycatchfinallyreturn执行顺序.捕获异常.声明异常throw.方法重写中异常的处理.手动抛出异常 异常的处理办法一:捕获异常 try try语句指定了一段 ...
- 【131天】尚学堂高淇Java300集视频精华笔记(65-66)
第65集:常用类Date类的使用JDk源码分析 Date时间类(java.util.Date) 在标准Java类库中包含一个Date类.它的对象表示一个特定的瞬间,精确到毫秒. Date()分配一个D ...
- 【147天】尚学堂高淇Java300集视频精华笔记(108-109)
第108集:容器equals和hashcodeJDK源代码分析 本集知识点 Java中规定,若两个对象equals比较后内容相等(为true),则hashCode必须相等,反之不然.[原因见内存分析图 ...
- 【153天】尚学堂高淇Java300集视频精华笔记(122-123)
叨叨两句(2017.7.8) 我现在发现我太适合当程序员了,稍微懂点知识后想法就一堆一堆的,哈哈. 今天敲下面这个冒泡排序时感觉太特么好了.原来学编程最快乐的事情就是懂了一些知识后,把它变成可以在电脑 ...
- 尚学堂 高琪JAVA300集第十一章作业 编程题答案
本人 JAVA初学者 在寻找这一方面的答案时没有看见 ,本着分享的精神 自己做了出来 也就传上来了 水平有限 存在有错的地方或者改进的方法 ,望大佬们可以提出 万分感谢. 1.1. 设计一个多线程的程 ...
- JAVA语言发展介绍【尚学堂java300集视频学习笔记】
Java发展简史 1991年,James Gosling在SUN公司的工程师小组想要设计这样一种小型计算机语言.该语言主要用于像电视盒这样的消费类电子产品.另外,由于不同的厂商选择不同的CPU和操作系 ...
- DAY12:尚学堂高琪JAVA(119~123)Hashmap 与冒泡排序
Hashmap 与冒泡排序 map,set,list的区别 添加链接描述 添加链接描述 添加链接描述 MyArrayList.java package fanxing; import java.uti ...
最新文章
- 区块链共识机制及其迭代
- git: No refs in common and none specified; doing no
- 文化创意企业纷纷跨界融合,软件资产管理奠定安全基础
- VR应用开发遍地走的日子还有多远
- wordpress搭建个人博客
- 标准模板库(STL)之配接器(Adapter)
- Docker Yearning + Inception SQL审核平台搭建
- linux pagecache与内存占用
- JDK8下载安装教程
- 17、【易混淆概念集】第十一章1 项目风险 风险临界值 VS 风险承受力 风险管理流程 风险管理及变更流程 规划风险管理 识别风险
- 盘点2017年最热门的10个增长黑客策略
- ssl证书 嵌入式设备_ngx_http_ssl_module
- python实现情人节的爱意表达
- 模块已加载,但是无法找到regsvrerver入口点
- Drupal踩坑记录之新建content无法访问
- 苹果电脑数据恢复推荐易我数据恢复:
- #python字典(dic缩写Dictionary)基础语法及代码实战
- usleep的--系统调用流程--及不准确的问题 - Android4 0 1
- ORACLE的TX锁和TM锁及解锁
- PHP5 mysqli 绑定参数
热门文章
- CSUOJ 1256 天朝的单行道(最短路)
- 0基础自学鸿蒙-Day_002 HelloWorld
- Android版的股票行情K线图开发
- 事业单位考试题库计算机网络,计算机考试题库:计算机网络模拟练习题(2)...
- 2018 蓝桥杯省赛 A 组模拟赛(一) 青出于蓝胜于蓝
- 解决SQLServer2000安装被挂起的方法
- dbcp 出现的connection is closed的问题
- 十七、DS1302的基本应用
- c语言编写单片机密码锁程序,51单片机密码锁制作的程序和流程图(很详细)
- Squid缓存代理服务器