• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

java中Set与Map排序输出到Writer的示例代码分享

java 搞代码 4年前 (2022-01-09) 18次浏览 已收录 0个评论

这篇文章主要介绍了 java中 Set与Map排序输出到Writer详解及实例的相关资料,需要的朋友可以参考下

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.en<mark style="color:transparent">本文来源gaodaimacom搞#^代%!码&网*</mark>trySet()) {      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排序输出到Writer的示例代码分享的详细内容,更多请关注搞代码gaodaima其它相关文章!


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:java中Set与Map排序输出到Writer的示例代码分享
喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址