• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >Java > java中 Set与Map排序输出到Writer详解及实例

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

作者:10km 字体:[增加 减小] 来源:互联网 时间:2017-05-28

10km 通过本文主要向大家介绍了java printwriter,java bufferedwriter,java writer,java.io.printwriter,java中printwriter等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

 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();
  }
</div>

调用示例如下:

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")));
</div>

生成结果已经是排序的了
这里写图片描述

这里写图片描述

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

</div>
分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • Java中的PrintWriter 介绍_动力节点Java学院整理
  • Java 中的Printstream介绍_动力节点Java学院整理
  • java中 Set与Map排序输出到Writer详解及实例
  • Java中的PrintWriter 介绍_动力节点Java学院整理
  • Java 中的Printstream介绍_动力节点Java学院整理

相关文章

  • 2017-05-28response.setHeader各种用法详解
  • 2017-05-28简单谈谈RxJava和多线程并发
  • 2017-05-28浅谈Java中注解Annotation的定义、使用、解析
  • 2017-05-28Java中IO流 字节流实例详解
  • 2017-05-28Java Timezone类常见问题_动力节点Java学院整理
  • 2017-05-28Java String对象使用方法详解
  • 2017-05-28Java数据结构与算法之树(动力节点java学院整理)
  • 2017-05-28HashMap和Hashtable的详细比较
  • 2017-05-28Java构造方法实例详解(动力节点java学院整理)
  • 2017-05-28Java实现MD5消息摘要算法

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • Java汉字转成汉语拼音工具类
    • Spring4整合Hibernate5详细步骤
    • Java中Builder模式的实现详解
    • 详谈Java编程之委托代理回调、内部类以及匿名内部类回调(闭包回调)
    • java编译时与运行时概念与实例详解
    • 详解Spring简单容器中的Bean基本加载过程
    • Java多线程并发编程 Synchronized关键字
    • Kotlin 与 Java基本语法对比
    • 微信开发准备第一步 Maven仓库管理新建WEB项目
    • ReentrantLock源码分析(二)

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有