java中 Set与Map排序输出到Writer详解及实例

发布时间 - 2026-01-11 00:20:35    点击率:

 java中 Set与Map排序输出到Writer详解及实例

一般来说java.util.Set,java.util.Map输出的内容的顺序并不是按key的顺序排列的,但是java.util.TreeMap,java.util.TreeSet的实现却可以让Map/Set中元素内容以key的顺序排序,所以利用这个特性,可以将Map/Set转为TreeMap,TreeSet然后实现排序输出。
以下是实现的代码片段:

 /**
   * 对{@link Map}中元素以key排序后,每行以{key}={value}形式输出到{@link Writer}<br>
   * map为空或null时则不向writer写入任何内容
   * @param map
   * @param writer 为null抛出{@link IllegalArgumentException}
   * @throws IOException
   */
  public static void storeSortedMap(Map<String,String> map,Writer writer) throws IOException {
    if(null==writer)
      throw new IllegalArgumentException("the arugment 'writer' must not be null ");
    TreeMap<String, String> sortedMap = new TreeMap<String,String>();
    if(null!=map)
      sortedMap.putAll(map);
    BufferedWriter bw=(writer instanceof BufferedWriter)?(BufferedWriter)writer
        : new BufferedWriter(writer);
    for (Entry<String,String> e:sortedMap.entrySet()) {
      bw.write(e.getKey() + "=" + e.getValue());
      bw.newLine();
    }
    bw.flush();
  }
  /**
   * 对 {@link Collection}中元素排序后(去除重复),元素分行输出到{@link Writer}<br>
   * collection为空或null时则不向writer写入任何内容
   * @param collection
   * @param writer 为null抛出{@link IllegalArgumentException}
   * @throws IOException
   */
  public static void storeSortedSet(Collection<String> collection,Writer writer) throws IOException {
    if(null==writer)
      throw new IllegalArgumentException("the arugment 'writer' must not be null ");
    TreeSet<String> sortedSet = new TreeSet<String>();
    if(null!=collection)
      sortedSet.addAll(collection);
    BufferedWriter bw=(writer instanceof BufferedWriter)?(BufferedWriter)writer
        : new BufferedWriter(writer);
    for (String e:sortedSet) {     
      bw.write(e);
      bw.newLine();
    }
    bw.flush();
  }

调用示例如下:

Map<String,String> map;
//....
storeSortedMap(map,new FileWriter(new File("c:\\id.txt")));
Set<String,String> set;
//....
storeSortedSet(set,new FileWriter(new File("c:\\trainval.txt")));

生成结果已经是排序的了

感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!


# java中  # Set与Map排序输出  # java  # Set与Map输出Writer  # java中TreeMap排序的示例代码  # Java TreeMap排序算法实例  # java中使用map排序的实例讲解  # 中元  # 抛出  # 不向  # 为空  # 时则  # 希望能  # 谢谢大家  # 顺序排列  # 素以  # gt  # map  # link  # Set  # lt  # writer  # param  # TreeSet  # strong  # null 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: Laravel怎么生成二维码图片_Laravel集成Simple-QrCode扩展包与参数设置【实战】  如何在阿里云虚拟服务器快速搭建网站?  三星网站视频制作教程下载,三星w23网页如何全屏?  Laravel怎么进行数据库回滚_Laravel Migration数据库版本控制与回滚操作  Linux网络带宽限制_tc配置实践解析【教程】  网站制作怎么样才能赚钱,用自己的电脑做服务器架设网站有什么利弊,能赚钱吗?  Windows10怎样连接蓝牙设备_Windows10蓝牙连接步骤【教程】  装修招标网站设计制作流程,装修招标流程?  JavaScript中的标签模板是什么_它如何扩展字符串功能  javascript基于原型链的继承及call和apply函数用法分析  html5怎么画眼睛_HT5用Canvas或SVG画眼球瞳孔加JS控制动态【绘制】  ,在苏州找工作,上哪个网站比较好?  Windows10如何更改计算机工作组_Win10系统属性修改Workgroup  jQuery中的100个技巧汇总  如何快速搭建安全的FTP站点?  JavaScript如何实现错误处理_try...catch如何捕获异常?  Win11怎么修改DNS服务器 Win11设置DNS加速网络【指南】  Python结构化数据采集_字段抽取解析【教程】  Android滚轮选择时间控件使用详解  制作企业网站建设方案,怎样建设一个公司网站?  如何用花生壳三步快速搭建专属网站?  哪家制作企业网站好,开办像阿里巴巴那样的网络公司和网站要怎么做?  Python面向对象测试方法_mock解析【教程】  奇安信“盘古石”团队突破 iOS 26.1 提权  大连企业网站制作公司,大连2025企业社保缴费网上缴费流程?  Android实现代码画虚线边框背景效果  Laravel如何处理CORS跨域问题_Laravel项目CORS配置与解决方案  佐糖AI抠图怎样调整抠图精度_佐糖AI精度调整与放大细化操作【攻略】  Laravel Eloquent模型如何创建_Laravel ORM基础之Model创建与使用教程  Python并发异常传播_错误处理解析【教程】  Chrome浏览器标签页分组怎么用_谷歌浏览器整理标签页技巧【效率】  Laravel怎么实现验证码(Captcha)功能  Bootstrap CSS布局之列表  Laravel广播系统如何实现实时通信_Laravel Reverb与WebSockets实战教程  Laravel怎么清理缓存_Laravel optimize clear命令详解  高防服务器租用首荐平台,企业级优惠套餐快速部署  大型企业网站制作流程,做网站需要注册公司吗?  Laravel与Inertia.js怎么结合_使用Laravel和Inertia构建现代单页应用  网站建设保证美观性,需要考虑的几点问题!  Laravel怎么实现微信登录_Laravel Socialite第三方登录集成  Laravel PHP版本要求一览_Laravel各版本环境要求对照  Laravel如何集成第三方登录_Laravel Socialite实现微信QQ微博登录  极客网站有哪些,DoNews、36氪、爱范儿、虎嗅、雷锋网、极客公园这些互联网媒体网站有什么差异?  手机软键盘弹出时影响布局的解决方法  利用python获取某年中每个月的第一天和最后一天  北京的网站制作公司有哪些,哪个视频网站最好?  如何在宝塔面板创建新站点?  青岛网站建设如何选择本地服务器?  MySQL查询结果复制到新表的方法(更新、插入)  如何有效防御Web建站篡改攻击?