126_容器_自定义数据排序
来源:互联网 发布:淘宝快递模板下载 编辑:程序博客网 时间:2024/05/18 01:04
- NewsItem.jar
package collection.sort.newsitemsort;import java.text.SimpleDateFormat;import java.util.Date;/*** 新闻条目实体类*/public class NewsItem implements Comparable<NewsItem>{ //标题 private String title; //点击量 private int hits; //时间 private Date pubTime; public NewsItem() { } public NewsItem(String title, int hits, Date pubTime) { super(); this.title = title; this.hits = hits; this.pubTime = pubTime; } public String getTitle() { return title; } public void setTitle(String title) { this.title = title; } public int getHits() { return hits; } public void setHits(int hits) { this.hits = hits; } public Date getPubTime() { return pubTime; } public void setPubTime(Date pubTime) { this.pubTime = pubTime; } //时间降序 +点击量升序+标题降序 @Override public int compareTo(NewsItem o) { int result =0; //比较 时间 result =-this.pubTime.compareTo(o.pubTime); //降序 if(0==result){ //时间相同 //点击量 result =this.hits-o.hits; //升序 if(0==result){ //点击量相同 //标题 result=-this.title.compareTo(o.title);//降序 } } return result; } @Override 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(); }}
- NewsItemImpl.jar
package collection.sort.newsitemsort;import java.util.ArrayList;import java.util.Collections;import java.util.Date;import java.util.List;/** * 使用Collections */public class NewsItemImpl { public static void main(String[] args) { List<NewsItem> news=new ArrayList<NewsItem>(); news.add(new NewsItem("美国后怕了,逃跑了悲剧了",50,new Date(System.currentTimeMillis()-1000*60*60))); news.add(new NewsItem("中国登上钓鱼岛了,全国欢呼了",100,new Date())); news.add(new NewsItem("小日本终于听话了,泪流满面笑了",60,new Date(System.currentTimeMillis()-1000*60*60))); System.out.println("排序前:"+news); //排序 Collections.sort(news); System.out.println("排序后"+news); }}
- Goods.jar
package collection.sort.newsitemsort;public class Goods { //商品名称 private String name; //价格 private double price; //收藏量 private int fav; public Goods() { } public Goods(String name, double price, int fav) { super(); this.name = name; this.price = price; this.fav = fav; } public String getName() { return name; } public void setName(String name) { this.name = name; } public double getPrice() { return price; } public void setPrice(double price) { this.price = price; } public int getFav() { return fav; } public void setFav(int fav) { this.fav = fav; } @Override public String toString() { return "商品名:"+name+",收藏量"+this.fav+",价格:"+this.price+"\n"; }}
- GoodsImpl.java
package collection.sort.newsitemsort;import java.util.ArrayList;import java.util.Collections;import java.util.List;public class GoodsImpl { public static void main(String[] args) { List<Goods> list =new ArrayList<Goods>(); list.add(new Goods("老马视频",100,2000)); list.add(new Goods("老高视频",50,2000)); list.add(new Goods("老裴视频",1000,1000)); System.out.println("排序前:"+list); // Collections.sort(list,new GoodsPriceComp()); Collections.sort(list,new GoodsFavCompare()); System.out.println("排序后:"+list); }}
- GoodsPriceCompare.java
package collection.sort.newsitemsort;import java.util.Comparator;/** * 实现Comparable接口,提高比较的条件 * 按价格排序的业务类 (降序) */public class GoodsPriceCompare implements Comparator<Goods> { @Override public int compare(Goods o1, Goods o2) { return -(o1.getPrice()-o2.getPrice()>0?1:(o1.getPrice()==o2.getPrice()?0:-1)); }}
- GoodsFavCompare.java
package collection.sort.newsitemsort;import java.util.Comparator;/** * 按收藏量排序的业务类 (升序) */public class GoodsFavCompare implements Comparator<Goods>{ @Override public int compare(Goods o1, Goods o2) { return o1.getFav()-o2.getFav(); }}
阅读全文
0 0
- 126_容器_自定义数据排序
- 111_容器_自定义实现HashSet
- 122-123_容器_排序_冒泡排序
- 127_容器_排序容器_TreeSet与TreeMap
- set容器_自定义数据类型排序(仿函数应用)_insert判断返回值(pair的使用)
- 112_容器_数据存储练习_JavaBean的介绍
- 119_容器_自定义实现迭代器_深入迭代器_迭代器原理_面向对象实现
- 容器存储数据_迭代器JAVA112-115
- 116_容器_自定义泛型_泛型类_泛型接口_泛型方法_安全_省心
- 117_容器_自定义泛型_深入1_子类_属性类型_重写方法类型_泛型擦除
- 129_容器_Queue与Deque_队列_模拟银行业务_自定义堆栈
- 118_容器_自定义泛型_深入2_无多态_通配符_无泛型数组_jdk7泛型使用
- 003_过滤和排序数据
- 126_发送自定义广播
- OC5_容器类型的快速枚举_数组排序
- 引用类型_排序容器_TreeSet与TreeMap
- Java基础_容器
- 泛型(1)_容器
- css如何实现数字在图标上显示
- 124_容器_内置类比较_Comparable_排序工具类实现
- [SMOJ2100]打印机
- 125_容器_内置类比较_Comparator_排序工具类实现
- 算法入门经典:大理石在哪儿
- 126_容器_自定义数据排序
- Linux实施抢占补丁的研究与实践
- 有道词典在谷歌Chrome浏览器中无法取词的解决方法
- HDU-3954:Level up(特殊的线段树成段更新)
- 127_容器_排序容器_TreeSet与TreeMap
- 关于JSON与ajax操作
- PHP后台支付的开发:微信支付和支付宝支付
- web components简介
- Linux基础