【157天】尚学堂高琪Java300集视频精华笔记(126)

发布时间:2019-11-20 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了【157天】尚学堂高琪Java300集视频精华笔记(126)脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。

【157天】尚学堂高琪Java300集视频精华笔记(126

决断。。。

第126集:引用类型_自定义数据排序

使用Comparable

  1. 实体类中实现了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();     }  } 
  1. 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

  1. 实体类很干净~功能很单一

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);              } } 
  1. 采用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按从小到大排序,而我想要从小到大排序的结果,所以加负号     } } 
  1. 采用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)全部内容,希望文章能够帮你解决【157天】尚学堂高琪Java300集视频精华笔记(126)所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。