java中 Set与Map排序输出到Writer详解及实例
作者:10km 发布时间:2022-05-01 07:23:56
标签: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.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")));
生成结果已经是排序的了
感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!


猜你喜欢
- 网站优化必做的事情之一,百度ping,主动推送给百度文章添加时调用百度推送方法//保存protected void btnSubmit_Cl
- Unity是不识别Gif格式图的,需要我们使用c#将gif里多帧图转化为Texture2D格式。需要使用System.Drawing.dll
- 本文实例为大家分享了WPF实现半圆形导航菜单的具体代码,供大家参考,具体内容如下实现效果如下:思路:扇形自定义控件组合成半圆型菜单,再通过c
- 估计学过Unix开发但是没有细致学习Java的同学们会疑惑了,操作系统里面是没有所谓的守护线程的概念,只有守护进程一说,但是Java语言机制
- 一. string的构造函数的形式:string str:生成空字符串string s(str):生成字符串为str的复制品string s
- 本文介绍了Java实现动态获取图片验证码的示例代码,分享给大家,具体如下:import javax.imageio.ImageIO;impo
- Android开发过程中,特别是新开的项目,底部状态栏的切换使用的频率非常的高,主要的实现方式有:(1)、TabLayout + Fragm
- 1.下载JDK查看最新:http://www.oracle.com/technetwork/java/javase/downloads/in
- 目录简单介绍具体实现首先,咱们先配置一下相关的jar包(pom.xml)创建一个Pet接口,存放方法say()创建一个Person类创建一个
- 详解微信小程序 同步异步解决办法小程序中函数体还没有完成,下一个函数就开始执行了,而且两个函数之间需要传参。那是因为微信小程序函数是异步执行
- 在hibernate5中,有了一些新的变动: 新引导 APISpatial/GIS 支持Java 8 支持扩展 AUTO
- 如何下载并配置JDK 15进入官网下载JDK 15。官网地址:https://www.oracle.com/index.html脚本之家下载
- Java面向对象之猜拳游戏,供大家参考,具体内容如下1 要求与电脑进行猜拳并记录分数。2 Computer.java 源代码(电脑自动随机出
- Bean的自动装配自动装配说明自动装配是使用spring满足bean依赖的一种方法spring会在应用上下文中为某个bean寻找其依赖的be
- 目录基本查询延迟查询属性类型筛选复合from子句多级排序分组联合查询-join合并-zip()分区(分页)并行linq取消长时间运行的并行l
- 最近一段时间 某台服务器上的一个应用总是隔一段时间就自己挂掉 用top看了看 从重新部署应用开始没有多长时间CPU占用上升得很快排查步骤1.
- 废话不多说了,直接给大家贴java代码了。 import java.io.IOException;import sun.net.Telnet
- 引言java中的Math.random()是一个在[0,1)范围等概率返回double数值类型的算法,基于此函数,我们来延申一些随机概率算法
- MyBatis resultMap id标签的错误使用我们在编写VO对象,如果业务场景稍微复杂一点,就会用到集合属性。例如用户查看个人订单列
- 本文实例为大家分享了Java从服务端下载Excel模板文件的具体实现代码,供大家参考,具体内容如下方法一 (2021年01月更新)生成exc