JAVA学习笔记41——引用类型比较2:新闻排序应用+商品排序应用

来源:互联网 发布:数据挖掘所需要的技术 编辑:程序博客网 时间:2024/05/22 17:04

最近在看JAVA教学的视频,觉得老师讲的很好,同时借用源代码还有笔记来撰写本系列博客,记录自己的学习内容,同时也供看到的人学习。

本篇来进行两个实际应用:

NO.1:新闻条目的排序:

import java.text.SimpleDateFormat;import java.util.Date;/** * 新闻条目实体类 * @author Administrator * */public class NewsItem implements java.lang.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;}//时间降序 +点击量升序+标题降序(设定的业务规则)@Overridepublic 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;  //都相等则返回0}@Overridepublic 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();}}
import java.util.ArrayList;import java.util.Collections;import java.util.Date;import java.util.List;import com.bjsxt.sort.innerType.Utils;/** * 使用Collections * @author Administrator * */public class NewsItemApp {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); //直接输出了list的全部内容?//排序//Collections.sort(news);Utils.sort(news);System.out.println("排序后"+news);}}
NO.2:商品排序:

/** * 实体类 * @author Administrator * */public class Goods {//商品名称private String name;//价格private double price;//收藏量private int fav;public Goods() {// TODO Auto-generated constructor stub}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;}@Overridepublic String toString() {return "商品名:"+name+",收藏量"+this.fav+",价格:"+this.price+"\n";}}
/** * 按价格排序的业务类 (降序) */public class GoodsPriceComp implements java.util.Comparator<Goods> {@Overridepublic int compare(Goods o1, Goods o2) {return -(o1.getPrice()-o2.getPrice()>0?1:(o1.getPrice()==o2.getPrice()?0:-1));}}
/** * 按收藏量排序的业务类 (升序) * @author Administrator * */public class GoodsFavComp implements java.util.Comparator<Goods> {@Overridepublic int compare(Goods o1, Goods o2) {return o1.getFav()-o2.getFav();}}
import java.util.ArrayList;import java.util.Collections;import java.util.List;public class GoodsApp {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 GoodsFavComp());System.out.println("排序后:"+list);}}
我一直都在用责任去尽量过好生活,却从来没有用兴趣去过好生活






0 0
原创粉丝点击