最终需要实现的效果图如下:

一、实现思路

1、将数据list 进行排序Collections,排序后是按照汉字字母排序的。

2、循环找出26个字母,以字母为key,以list中相同首字母的数据为值(集合)。

二、开发准备

1、这里需要用到pinyin4j-2.5.0.jar这个汉字转拼音的jar包,

大家可点击  pinyin4j-2.5.0.jar  下载我上传到CSDN的jar包资源;

2、将该jar包导入到maven项目中

1)在项目中新建lib文件,将jar包复制粘贴到该文件中

2)在pom文件中进行依赖配置

        <dependency><groupId>pinyin4j</groupId><artifactId>pinyin4j</artifactId><version>2.5.0</version><scope>system</scope><systemPath>${project.basedir}\lib\pinyin4j-2.5.0.jar</systemPath></dependency>

三、代码实现

1、这个是汉字转拼音的方法

/*** 字符串拼音转换工具类*/
public class PinyinUtil {/*** 获取汉字串拼音,英文字符不变* @param chinese 汉字串* @return 汉语拼音*/public static String getFullSpell(String chinese) {StringBuffer pybf = new StringBuffer();char[] arr = chinese.toCharArray();HanyuPinyinOutputFormat defaultFormat = new HanyuPinyinOutputFormat();defaultFormat.setCaseType(HanyuPinyinCaseType.UPPERCASE);defaultFormat.setToneType(HanyuPinyinToneType.WITHOUT_TONE);for (int i = 0; i < arr.length; i++) {if (arr[i] > 128) {try {pybf.append(PinyinHelper.toHanyuPinyinStringArray(arr[i], defaultFormat)[0]);} catch (BadHanyuPinyinOutputFormatCombination e) {e.printStackTrace();}} else {pybf.append(arr[i]);}}return pybf.toString();}}

2、业务代码使用实例

我这边最终返回的是已实体类为主题的数据模型,但是拼音处理工具只能处理字符串,所以我对于这一块进行了转化,采用lambda表达式实现。

public List<a> findParkList(String search){List<a> b = new ArrayList<>();//查询所有园区List<d> list = dMapper.findByCommName(search);//将园区按照首字母进行分组if (list != null && list.size() > 0) {Comparator com = Collator.getInstance(Locale.CHINA);//按字母排序Collections.sort(list.stream().map(d::getCommunityName).collect(Collectors.toList()),com);//输出26个字母for (int i = 1; i <= 26; i++) {String word = String.valueOf((char)(96 + i)).toUpperCase();//循环找出首字母一样的数据List<d> dList = new ArrayList<>();for (d e : list) {String zm = PinyinUtil.getFullSpell(e.getCommunityName()).substring(0,1);if (word.equals(zm)){dList.add(e);}}if (dList != null && dList.size() > 0) {a c = new a();c.setInitials(word);c.setFrameParkList(dList);b.add(c);}}}return b;}

或参考

此段代码因涉及到业务代码,部分代码进行了修改处理。

四、测试

调用接口,控制台输出如下

{"content": [{"frameParkList": [{"communityName": "安大法官的双方各","createName": "","datasourceId": "","id": "220A2878E078rfvcd1EE899A1E3"}],"initials": "A"},{"frameParkList": [{"communityName": "白风风光光","createName": "","datasourceId": "","id": "220A2878E0C14F1EE877A1E3"}],"initials": "B"}
],"message": "","status": "success"
}

#@lehao#

帮助到您请点赞关注收藏谢谢!!

springboot返回按照首字母分组排序数据相关推荐

  1. php实现通讯录按字母分组,iOS - 通讯录开发,名字按拼音首字母分组排序

    应项目需要,需添加一个自定义的通讯录,所以需要对联系人按名字的首字母进行排序.以下方法已经封装好,复制到项目中直接可以使用. 该方法是使用UILocalizedIndexedCollation来进行本 ...

  2. 城市名称按首字母分组排序,并实现多音字处理

    一.需求 将城市列表(中文)按照首字母分组排序,以26个字母的顺序进行分组. 传统的解决方式使用如下pinyin4j来解决: <dependency><groupId>com. ...

  3. 通讯录c语言编程按字母分组,iOS - 通讯录开发,名字按拼音首字母分组排序

    应项目需要,需添加一个自定义的通讯录,所以需要对联系人按名字的首字母进行排序.以下方法已经封装好,复制到项目中直接可以使用. 该方法是使用UILocalizedIndexedCollation来进行本 ...

  4. java8 stream 首字母分组排序

    stream 根据首字母分组排序 //获取集合 List<String> nameList=saleModelService.findExistBrandsInTable(); Map&l ...

  5. PHP利用ICU扩展intl快速实现汉字转拼音以及按拼音首字母分组排序

    ICU(International Components for Unicode)里提供了transliterator(直译器), 可以很方便把其他语言(比如简体中文)转为拉丁文表示: http:// ...

  6. php根据汉字首字母分组,利用PHP获取汉字首字母并且分组排序详解

    前言 本文主要给大家介绍了关于PHP获取汉字首字母并分组排序的相关内容,因经常我们在做项目的时候,会有按首字母排序的需求 比如: 美团的城市选择 http://www.meituan.com/inde ...

  7. Java实现根据拼音首字母的排序

    1.项目 手机APP端要对企业列表按企业名称首字母(如果企业名是英文的就按)进行分类排序,效果如下: 2.实现过程 2.1 首先引入项目的pinyin4j-2.5.0.jar包. 这个jar的下载地址 ...

  8. 数组根据某字段首字母拼音排序并返回新的数组

    原本的数组长这样: const data = [{name: '测试数据1',sortName: '一个需要排序的数据'},{name: '测试数据2',sortName: '二个需要排序的数据'} ...

  9. Js实现中文排序,并根据拼音首字母分组

    Js实现中文排序,并根据拼音首字母分组 const pySegSort=(arr) =>{if (!String.prototype.localeCompare) return nulllet ...

最新文章

  1. python魔法方法详解
  2. 剑指 Offer 06. 从尾到头打印链表(C语言)
  3. halcon/c++接口基础 之内存管理
  4. C语言 二维数组遍历 - C语言零基础入门教程
  5. Gem5全系统FS(full system)测试
  6. ddos工具linux,DDoS常用工具大全
  7. BZOJ1861: [Zjoi2006]Book 书架
  8. 学会这两个技巧!让你的Mac文件共享超简单
  9. 基于统计语言模型的分词方法
  10. 华罗庚杯成绩查询2021高考成绩,第22届华杯赛入围决赛分数线已定,明天起可查询成绩...
  11. html如何添加隶书字体,word如何添加隶书字体?
  12. pta 计算圆周率(C语言实现)
  13. 计算机表格应用试题及答案,2016年职称计算机考试EXCEL练习试题及答案
  14. juniper:opencontrail/contrail 作为SDN解决方案
  15. 线性代数拾遗(4)—— 非齐次线性方程组通解的结构
  16. Semi-Supervised Semantic Segmentation with Cross-Consistency Training论文笔记
  17. NumPy与ndarray简介
  18. 各种抗锯齿模式略解:SSAA MSAA CSAA CFAA
  19. 对数线性模型(Log-Linear Model)一种判别式模型的创建框架
  20. 专门除COD有机物的树脂工艺

热门文章

  1. 转载:Linux下启动和关闭Weblogic(管理服务器+被管服务器)
  2. ios webView 打开 ppt pdf
  3. EXCEL中条件计数函数DCOUNT的用法
  4. Find–atime –ctime –mtime的用法与区别总结
  5. 实践篇 | 构建下一代云上数据湖,助力车企数字化转型
  6. ucloud nginx 压测
  7. 决策树简单介绍(二) Accord.Net中决策树的实现和使用
  8. 深入理解NLP Subword算法:BPE、WordPiece、ULM ,sentencepiece
  9. 【神经网络压缩加速之剪枝二】Pruning Filters for Efficient ConvNets
  10. 服务器dhcp服务没有响应,dhcp服务器没有响应