java Stream流等操作

JSONObject json = JSONObject.parseObject(jsonStr); 
//parse主要解析字符串,当调用tostring或者tojsonstring会出现, 为null的字段不会被 打印出来

1、foreach循环遍历

在对json迭代的时候,增删会报ConcurrentModificationException,改不会,
解决办法:用iterator迭代, iterator.remove(); 用这个方法删除,或者for循环,移除索引,而不是键key也是可以的

  	   jsonObject.entrySet().forEach(item->{            
            if(item.getValue().equals("")){
                //jsonObject.put("aaa","aaa");
                //jsonObject.remove(item.getKey());
                jsonObject.put(item.getKey(),null);
            }
        });
          Set<Map.Entry<String, Object>> entries = jsonObject.entrySet();
        Iterator<Map.Entry<String, Object>> iterator = entries.iterator();
        while (iterator.hasNext()){
            Map.Entry<String, Object> next = iterator.next();
            if(next.getKey().equals("GPS_INSTALLING")){
                iterator.remove();                                    
            }
        }

2、filter过滤

//将key过滤满足条件放入集合
List<String> collect = jsonObject.keySet().stream().filter(e->e.contains("e")).collect(Collectors.toList()); 

3、map转变key或者value

//将k所有ey改变放入集合
List<String> collect = jsonObject.keySet().stream().map(e->{return e.substring(0,3);}).collect(Collectors.toList());

4、collect收集相关数据

//将所有key放入集合
List<String> collect = jsonObject.keySet().stream().collect(Collectors.toList());

//将key过滤满足条件放入集合
List<String> collect = jsonObject.keySet().stream().filter(e->e.contains("e")).collect(Collectors.toList()); 

//将k所有ey改变放入集合
List<String> collect = jsonObject.keySet().stream().map(e->{return e.substring(0,3);}).collect(Collectors.toList());

 //找第一个找不到抛异常
String collect = jsonObject.keySet().stream().findFirst().orElseThrow(()->new Tango2BaseRuntimeException(""));

//只有所有key都满足才会是 true
boolean collect = jsonObject.keySet().stream().allMatch(e->e.contains(""));

5、reduce减少

List<Integer> ints = Lists.newArrayList(1,25,3,4,5,6,7,8,9,10);
//获得所有数的和+起始值(2)
System.out.println("ints sum is:" + ints.stream().reduce(2, (sum, item) -> sum + item));

//获得所有数的和
System.out.println("ints sum is:" + ints.stream().reduce((sum, item) -> sum + item).get());

//获得数组中值最大的
System.out.println("最大值:" + ints.stream().reduce((sum, item) -> sum>=item?sum:item).get());

//获得集合大小
System.out.println("ints sum is:" + ints.stream().count());

Stream<String> s = Stream.of("test", "t1", "t2", "teeeee", "aaaa", "taaa");
//拼接字符串 结果:[value]testt1t2teeeeeaaaataaa
System.out.println(s.reduce("[value]",(a,b)->a.concat(b)));
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值