总结一下工作中遇到的一些集合操作

<dependency>
    <groupId>com.alibaba</groupId>
    <artifactId>fastjson</artifactId>
    <version>1.2.4</version>
</dependency>

JSON.toJSONString(object);

当然所有涉及到JSON的问题都可以用该包解决。

<dependency>
            <groupId>com.google.guava</groupId>
            <artifactId>guava</artifactId>
            <version>16.0.1</version>
        </dependency>

常用集合操作,以下都是在工作中经常遇到的一些问题的优美的解决方式:

1,list 2 list

List<String> addressList = Lists.transform(userPoList, new Function<UserPo, String>() {
    public String apply(UserPo userPo) {
        return userPo.getAddress();
    }
});
System.out.println(JSON.toJSONString(addressList));

将对象中的某属性抽出来作为一个集合,当然transform是用来转换的,这只是一种常见下面的同理。

2,list 2 string

List<String> list = Lists.newArrayList(“test1”,null,"test2","test3");
String addressStr = Joiner.on(",”).skipNulls.join(list);
System.out.println(addressStr);
将列表中的元素拼接为字符串

3,list 2 map

Map<String, UserPo> id2user = Maps.uniqueIndex(userPoList, new Function<UserPo, String>() {
    public String apply(UserPo from) {
        return from == null ? StringUtils.EMPTY : String.valueOf(from.getUserId());
    }
});
System.out.println(JSON.toJSONString(id2user));
将列表中对象的主键作为新map的key,对象作为值

4,map 2 map

Map<String, UserPo> key2user = Maps.newHashMap();
key2user.put("key1", po1);
key2user.put("key2", po2);
key2user.put("key3", po3);
key2user.put("key4", po4);
key2user.put("key5", null);
Map<String, String> newMap = Maps.transformValues(key2user, new Function<UserPo, String>() {
    public String apply(UserPo from) {
        return from == null ? StringUtils.EMPTY : String.valueOf(from.getUserId());
    }
});
System.out.println(JSON.toJSONString(newMap));
原map中value为对象,转换后map中value为对象的某一属性(当然也可为其他,如属性组合)

5,map 2 string

Map<String, Integer> salary = Maps.newHashMap();
salary.put("John", 1000);
salary.put("Jane", 1500);
String map2string = Joiner.on(",").withKeyValueSeparator("=").join(salary);
System.out.println(JSON.toJSONString(map2string));

将map转换为指定格式的string

<dependency>
    <groupId>com.google.guava</groupId>
    <artifactId>guava</artifactId>
    <version>16.0.1</version>
</dependency>

1,string 2 map

String input = "John:first,Adam:second";
Map<String, String> result = Splitter.on(",").withKeyValueSeparator(":").split(input);
System.out.println(JSON.toJSONString(result));
将string转为map,读取配置可能用到

2,string 2 list

String ss = "apple - banana - orange";
List<String> string2list = Splitter.on("-").trimResults().splitToList(ss);
System.out.println(JSON.toJSONString(string2list));
将string转为list,读取配置可能用到


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值