基础算法7:从数据库某个字段中取出现次数最多的几条数据形成“热门xxx”

简介:

如题所示,有时候我们需要从数据库中的某个表中取出某个字段的数据,并根据其出现的频率在前台页面中显示“热门城市”、“热门商品”等信息。比如说我们要取出所有航线中的“热门城市”,可以这样做:

(1)数据在数据库中是这样的:

wKiom1czVEbxkDl0AABsbJonIwU594.png

在这里,我们需要查出所有的“出发城市”和“到达城市”,并对每个城市进行计数根据其出现次数来取出几个出现次数最多的城市为热门城市

注:将多个字段的数据合并在一起并且不经过去重处理,可以使用下面这个SQL语句:

1
select  DEPARTURE_AIRPORT  from  USR_AIR_LINE  union  all  select  ARRIVAL_AIRPORT  from  USR_AIR_LINE;

(2)对取出的数据进行计数,排序以及求出最后的“热门城市”:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
package  cn.zifangsky.base;
 
import  java.io.BufferedReader;
import  java.io.File;
import  java.io.FileReader;
import  java.util.ArrayList;
import  java.util.Collections;
import  java.util.Comparator;
import  java.util.HashMap;
import  java.util.List;
import  java.util.Map;
import  java.util.Map.Entry;
 
public  class  PopAirportDemo {
 
     public  static  void  main(String[] args)  throws  Exception {
         // 读文件
         BufferedReader reader =  new  BufferedReader(
                 new  FileReader( new  File( "C:/Users/Administrator/Desktop/airport.txt" )));
         String temp =  "" ;
         List<String> airportCodes =  new  ArrayList<String>();  // 城市三字码集合
 
         while  ((temp = reader.readLine()) !=  null ) {
             airportCodes.add(temp);
         }
         reader.close();
 
         Map<String, Integer> countMap =  new  HashMap<String, Integer>();   //<城市三字码,总次数>
         //遍历List形成<城市三字码,总次数>键值对
         for  (String code : airportCodes) {
             if  (!countMap.containsKey(code)) {
                 countMap.put(code,  1 );
             else  {
                 countMap.put(code, countMap.get(code) +  1 );
             }
 
         }
 
         // 排序
         List<Map.Entry<String, Integer>> list =  new  ArrayList<Map.Entry<String, Integer>>(countMap.entrySet());
         Collections.sort(list,  new  Comparator<Map.Entry<String, Integer>>() {
             //自定义排序
             public  int  compare(Entry<String, Integer> o1, Entry<String, Integer> o2) {
                 return  o2.getValue().compareTo(o1.getValue());
             }
         });
 
         List<String> result =  new  ArrayList<String>();   //热门城市集合
         int  point =  0 ;
         for  (Map.Entry<String, Integer> mapping : list) {
             // System.out.println(mapping.getKey() + " -> " +
             // mapping.getValue());
             result.add(mapping.getKey());
             point++;
             //这里取5个热门城市
             if  (point >=  5 )
                 break ;
         }
 
         System.out.println(result);
     }
 
}

注:我这里为了简化操作,已经把所有的城市三字码保存到“airport.txt”这个文件中了,这里只专注于整个算法流程而不考虑JDBC等问题



本文转自 pangfc 51CTO博客,原文链接:http://blog.51cto.com/983836259/1772447,如需转载请自行联系原作者

相关文章
|
10月前
|
机器学习/深度学习 算法 前端开发
别再用均值填充了!MICE算法教你正确处理缺失数据
MICE是一种基于迭代链式方程的缺失值插补方法,通过构建后验分布并生成多个完整数据集,有效量化不确定性。相比简单填补,MICE利用变量间复杂关系,提升插补准确性,适用于多变量关联、缺失率高的场景。本文结合PMM与线性回归,详解其机制并对比效果,验证其在统计推断中的优势。
1960 11
别再用均值填充了!MICE算法教你正确处理缺失数据
|
12月前
|
机器学习/深度学习 Dragonfly 人工智能
基于蜻蜓算法优化支持向量机(DA-SVM)的数据多特征分类预测研究(Matlab代码实现)
基于蜻蜓算法优化支持向量机(DA-SVM)的数据多特征分类预测研究(Matlab代码实现)
233 1
|
11月前
|
传感器 机器学习/深度学习 算法
【使用 DSP 滤波器加速速度和位移】使用信号处理算法过滤加速度数据并将其转换为速度和位移研究(Matlab代码实现)
【使用 DSP 滤波器加速速度和位移】使用信号处理算法过滤加速度数据并将其转换为速度和位移研究(Matlab代码实现)
591 1
|
11月前
|
机器学习/深度学习 算法 调度
14种智能算法优化BP神经网络(14种方法)实现数据预测分类研究(Matlab代码实现)
14种智能算法优化BP神经网络(14种方法)实现数据预测分类研究(Matlab代码实现)
676 0
|
11月前
|
数据采集 关系型数据库 MySQL
python爬取数据存入数据库
Python爬虫结合Scrapy与SQLAlchemy,实现高效数据采集并存入MySQL/PostgreSQL/SQLite。通过ORM映射、连接池优化与批量提交,支持百万级数据高速写入,具备良好的可扩展性与稳定性。
|
11月前
|
存储 监控 算法
企业电脑监控系统中基于 Go 语言的跳表结构设备数据索引算法研究
本文介绍基于Go语言的跳表算法在企业电脑监控系统中的应用,通过多层索引结构将数据查询、插入、删除操作优化至O(log n),显著提升海量设备数据管理效率,解决传统链表查询延迟问题,实现高效设备状态定位与异常筛选。
235 3
|
11月前
|
人工智能 Java 关系型数据库
使用数据连接池进行数据库操作
使用数据连接池进行数据库操作
243 11
|
10月前
|
机器学习/深度学习 人工智能 算法
【基于TTNRBO优化DBN回归预测】基于瞬态三角牛顿-拉夫逊优化算法(TTNRBO)优化深度信念网络(DBN)数据回归预测研究(Matlab代码实现)
【基于TTNRBO优化DBN回归预测】基于瞬态三角牛顿-拉夫逊优化算法(TTNRBO)优化深度信念网络(DBN)数据回归预测研究(Matlab代码实现)
361 0
|
11月前
|
算法 数据挖掘 定位技术
基于密度的聚类算法能够在含有噪声的数据集中识别出任意形状和大小的簇(Matlab代码实现)
基于密度的聚类算法能够在含有噪声的数据集中识别出任意形状和大小的簇(Matlab代码实现)
246 1

热门文章

最新文章