当前位置: 首页 > news >正文

java-如何对vo里面的字段或者Map里面数据进行排序

文章目录

  • 前言
    • java-如何对vo里面的字段或者Map里面数据进行排序
      • 1. 对vo里面的字段进行遍历- 正序排序
      • 2. 对vo里面的字段进行遍历- 倒序排序
      • 3. 对Map里边的内容进行倒序排序
      • 4. 测试

前言

  如果您觉得有用的话,记得给博主点个赞,评论,收藏一键三连啊,写作不易啊^ _ ^。
  而且听说点赞的人每天的运气都不会太差,实在白嫖的话,那欢迎常来啊!!!


java-如何对vo里面的字段或者Map里面数据进行排序

  • 对vo里面的字段进行排序采用的是利用反射机制 来遍历一个类的所有字段;
  • 对Map里面的数据进行排序采用的是先转成list进行倒序,然后使用 LinkedHashMap进行插入,因为 LinkedHashMap可以确保插入顺序,Map本身就是无序状态;

1. 对vo里面的字段进行遍历- 正序排序

    public static void testA(OperationLogRes vo ){System.out.println("对vo里面的字段进行遍历- 正序排序");// 获取 VO 对象的 Class 实例Class<?> clazz = vo.getClass();// 获取所有字段(包括私有字段)Field[] fields = clazz.getDeclaredFields();// 遍历字段并打印其名称和值for (Field field : fields) {field.setAccessible(true);  // 允许访问私有字段try {// 获取字段的名称String fieldName = field.getName();// 获取字段的值Object value = field.get(vo);// 打印字段名称和值System.out.println(fieldName + ": " + value);} catch (IllegalAccessException e) {e.printStackTrace();}}}

2. 对vo里面的字段进行遍历- 倒序排序

public static void testB(OperationLogRes vo){System.out.println("对vo里面的字段进行遍历- 倒序排序");// 获取 VO 对象的 Class 实例Class<?> clazz = vo.getClass();// 获取所有字段(包括私有字段)Field[] fields = clazz.getDeclaredFields();// 倒序遍历字段并打印其名称和值for (int i = fields.length - 1; i >= 0; i--) {Field field = fields[i];field.setAccessible(true);  // 允许访问私有字段try {// 获取字段的名称String fieldName = field.getName();// 获取字段的值Object value = field.get(vo);// 打印字段名称和值System.out.println(fieldName + ": " + value);} catch (IllegalAccessException e) {e.printStackTrace();}}}

3. 对Map里边的内容进行倒序排序

 public static void testC(Map<String, String> map){System.out.println("对Map里边的内容进行倒序排序");// 将 Map 的 entrySet 转换为 ListList<Map.Entry<String, String>> entryList = new ArrayList<>(map.entrySet());// 按照键进行倒序排序entryList.sort(Map.Entry.<String, String>comparingByKey().reversed());// 将排序后的结果放入 LinkedHashMap(使用 LinkedHashMap 可以确保插入顺序)Map<String, String> sortedMap = Maps.newLinkedHashMap();for (Map.Entry<String, String> entry : entryList) {sortedMap.put(entry.getKey(), entry.getValue());}// 输出倒序后的 MapSystem.out.println("倒序后的 Map: " + sortedMap);}

4. 测试

public static void main(String[] args) {OperationLogRes vo = new OperationLogRes("AAA", new Date(), "CCC","DDD","EEE","FFF");testB(vo);testA(vo);Map<String, String> map = Maps.newLinkedHashMap();map.put("A", "Apple");map.put("B", "Banana");map.put("C", "Cherry");map.put("D", "Date");testC(map);}

效果:
在这里插入图片描述


http://www.mrgr.cn/news/56688.html

相关文章:

  • GJB438C-2021《软件需求规格说明》的一处修订
  • hiveserver与beeline
  • 嵌入式学习-IO进程-Day07
  • 红黑树(创建 插入 测试验证)
  • EDI 810 和 EDI 820 的区别
  • 深入解析JavaScript中的箭头函数及其在React中的应用(箭头函数与传统函数的区别、如何在不同上下文中使用箭头函数)
  • Redis-05 Redis哨兵高可用架构原理与搭建
  • C语言-文件读写代码详解
  • 【汇编语言】第一个程序(一)—— 一个源程序从写出到执行的过程
  • WPF修改应用程序桌面图标
  • 【Git原理与使用】多人协作
  • 【Vue3】第一篇
  • 系统架构设计师教程 第4章 4.1-2 信息安全基础知识及意义 笔记
  • 【Linux系统编程】第三十六弹---深入探索进程间通信:封装共享内存类并实现进程间数据共享
  • python安卓开发
  • 0160____declspec(noreturn)的用法
  • 【趣学C语言和数据结构100例】
  • C++网络编程之绑定
  • PCB生产制造商强达电路,公布网上申购情况及中签率
  • Transformer 天气数据进行时序预测
  • Github 2024-10-23C开源项目日报 Top10
  • 本地函数 lambda函数 回调函数(c#)
  • Redis内部数据结构ziplist详解
  • 文章解读与仿真程序复现思路——电力系统自动化EI\CSCD\北大核心《需求响应下计及高耗能工业负荷生产流程的经济调度模型》
  • PCDN 的激励机制对平台可持续发展的影响(贰)
  • 闯关leetcode——190. Reverse Bits