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
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 起诉了对方不来怎么办 在监狱里被打伤了怎么办 初三要体检没去怎么办 羁押人在看守所没判刑怎么办? 在看守所关两年了还没有判刑怎么办 开麻将馆被拘留怎么办 拘留31天了我该怎么办 收到一封拘留信怎么办 存钱的收据掉了怎么办 行政拘留法制没有批的怎么办 别人起诉我我该怎么办 去钟落潭看守所送衣服要怎么办 长城宽带账号密码忘了怎么办 预约考试密码忘了怎么办 健康证预约号忘记怎么办啊 人在看守所七个月还没结果怎么办 起诉书和判决书丢了怎么办 进了看守所信用卡逾期怎么办 公安局审讯室监控影相被删除怎么办 关进看守所以前的工作怎么办 上海初中借读生学籍怎么办 外地货北京三环怎么办 谁买了小产权怎么办 狗在小区丢了怎么办 太原回迁房多余的房子怎么办 回迁房被开发商抵押怎么办 回迁房源多开发商扣房怎么办 蝈蝈叫晚上怕吵怎么办 蝈蝈总不停的叫怎么办 按揭房没拿房产证夫妻离婚怎么办 按揭房子房产证还没有到离婚怎么办 结婚7年离婚孩子怎么办 合伙经营KTV股东意见不合怎么办 合伙生意转让意见不合怎么办 租完房子后悔了怎么办 通过中介买房产生纠纷怎么办 天津公租房资格证到期怎么办 买大房子后悔了怎么办 公款私存了该怎么办 外地人怎么办身份证在北京东城区 申请公租房有车怎么办