首页 > 编程语言 > 详细

java-自定义数据排序

时间:2019-04-27 23:46:50      阅读:126      评论:0      收藏:0      [点我收藏+]

导读:由于基本类型的数据都实现了一个共同的接口java.lang.Comparable接口,都实现了该接口下面的compareTo()方法,因此想要利用面向对象实现现实生活中的一些情景再现,比如新闻根据标题内容,点击量,更新日期等等进行排名。

1.首先新建一个实体类,用于存放数据

 1 package com.etc;
 2 import java.text.DateFormat;
 3 import java.text.ParseException;
 4 import java.text.SimpleDateFormat;
 5 //新闻实体类,里面包含新闻标题,新闻的点击率,以及更新时间
 6 import java.util.Date;
 7 
 8 public class News {
 9     public String title;
10     public int clickNum;
11     public Date date;
12     public News(String title, int clickNum, String date) {
13         super();
14         this.title = title;
15         this.clickNum = clickNum;
16         //将传入的String类型的日期进行转换
17         DateFormat format=new SimpleDateFormat("yyyy-MM");
18         try {
19             this.date = format.parse(date);
20         } catch (ParseException e) {
21             e.printStackTrace();
22         }
23     }
24 
25     public News(String title) {
26         this.title=title;
27     }
28 
29     public String getTitle() {
30         return title;
31     }
32     public void setTitle(String title) {
33         this.title = title;
34     }
35     public int getClickNum() {
36         return clickNum;
37     }
38     public void setClickNum(int clickNum) {
39         this.clickNum = clickNum;
40     }
41     public Date getDate() {
42         return date;
43     }
44     public void setDate(Date date) {
45         this.date = date;
46     }
47 
48 }

2.具体排序类方法实现

 

 1 package com.etc;
 2 
 3 import java.util.ArrayList;
 4 import java.util.Date;
 5 import java.util.List;
 6 
 7 /**
 8  * 自定义实现数据排序
 9  * 例:新闻数据信息排序
10  * 1.按照时间信息Date排序
11  * 2.按照点击率Integer排序
12  * 3.按照标题信息String排序
13  */
14 public class CustomizeSort {
15 
16     public static void main(String[] args) {
17         SortByclickNum();
18         SortByDate();
19         SortByTitle();
20     }
21     //自定义实现根据新闻点击量将新闻标题排序
22     public static void SortByclickNum() {
23         //获取数据
24         List<News> list=setData();
25         List<Integer> ls=new ArrayList<Integer>();
26         System.out.println("点击量数据为:");
27         //将数据放入集合中以便存储
28         for(int i=0;i<list.size();i++) {
29             ls.add(list.get(i).clickNum);
30             System.out.println(ls.get(i)+" ");
31         }
32 
33     }
34 
35     public static void SortByDate() {
36         //获取数据
37         List<News> list=setData();
38         List<Date> ls=new ArrayList<Date>();
39         System.out.println("更新日期数据为:");
40         for(int i=0;i<list.size();i++) {
41             ls.add(list.get(i).date);
42             System.out.println(ls.get(i)+" ");
43         }
44     }
45 
46     //这里实现将新闻的标题获取,并根据标题名进行排序
47     private static void SortByTitle() {
48         //获取数据
49         List<News> list=setData();
50         List<String> ls=new ArrayList<String>();
51         System.out.println("标题名称数据为:");
52         for(int i=0;i<list.size();i++) {
53             ls.add(list.get(i).title);
54             System.out.println(ls.get(i)+" ");
55         }
56     }
57 
58     //新闻信息初始化数据输入,以集合的形式存放数据
59     public static List<News> setData() {
60         List<News> list=new ArrayList<News>(); 
61         News N1=new News("新闻A",1000,"2019-04");
62         News N2=new News("新闻B",1500,"2019-05");
63         News N3=new News("新闻C",1800,"2019-03");
64         News N4=new News("新闻D",900,"2019-11");
65         News N5=new News("新闻E",800,"2019-9");
66         list.add(N1);
67         list.add(N2);
68         list.add(N3);
69         list.add(N4);
70         list.add(N5);
71         return list;
72 
73     }
74 
75     //实现打印功能
76     private static void PrintfOrder(int[] a) {
77         for(int i=0;i<a.length;i++) {
78             System.out.print(a[i]+" ");
79         }
80         System.out.print("\n");
81     }
82 }

 

效果截图:

 

ps:文章未完善,正在努力学习改进排序类方法的实现。

 

java-自定义数据排序

原文:https://www.cnblogs.com/weekstart/p/10778298.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!