java中的一些骚操作(日后会经常更新)

1. StringUtils

1.逗号切割

 for (Agentband agentband : agentbands) {
                String str = agentband.getListIds();
                if ("" != str && null != str) {
                    String[] list = str.split(",");
                    if (list.length > 0) {
                        for (String s : list) {
                            //if (null != s && "" != s) {
                        	if (null != s && "" != s && !s.isEmpty() && s.length()>0) {
                            	System.out.println("listIds:"+s);
                                listIds.add(Integer.parseInt(s));
                            }
                        }
                    }
                }
            }

2. List

1.递归寻找父类

    /**
     * 递归查询上级分类
     * @param catid
     * @param result
     * @return
     */
	private List<CrmPrdCat> getCatIds(List<Integer> catid,List<CrmPrdCat> result){
        if (CollectionUtils.isNotEmpty(catid)) {
            List<CrmPrdCat> crmPrdCats = crmPrdCatMapper.selectByCIds(catid);
            if (CollectionUtils.isNotEmpty(crmPrdCats)){
                result.addAll(crmPrdCats);
                List<Integer> collect = crmPrdCats.stream().map(CrmPrdCat::getPcatId).collect(Collectors.toList());
                result = getCatIds(collect, result);
            }
        }
        return  result;
    }

2.对List集合去重

listIds.stream().distinct().collect(Collectors.toList())

3.遍历集合并且拼接

String xml =
      "<people data='lastname'>" +
      people.stream()
            .map(it -> "<person>" + it.getLastName() + "</person>")
            .reduce("", String::concat)
      + "</people>";
    System.out.println(xml); 

4.对集合进行过滤操作

@Test
	public void strFilter(){
		String str = " 进口红点不锈钢蔬菜刀刀具厨房用品防滑手柄   4034ZW不锈钢";
			str = str.trim();
			String[] s = str.split(" ");
			List<String> strings = Arrays.asList(s);
		List<String> collect = strings.stream().filter(blank -> !"".equals(blank)).collect(Collectors.toList());
			StringBuffer sb = new StringBuffer();
			for (String s2 :collect ) {
				sb.append(s2+"_");
			}
			if (sb.length() > 0){
				sb.deleteCharAt(sb.length()-1);
			}
			String substring = sb.toString();

			System.out.println(substring);

	}

	@Test
	public void strFilter2(List<Struts> stu){
    //对 对象进行过滤
		stu.stream().filter(str-> "".equals(str.getName)).collect(Collections.toList()).forEach(System.out::print)

	}

5.复制List集合

BeanCopierUtil.copyAsList(relationShipMapper.selectByConditionListVo(recordVo), SystemUserVO.class, false));

6.计算集合数值总和

    @Test
    public void sum() {
        List<Integer> values = Arrays.asList(1, 2, 3, 4, 5);
        int sum = values.stream().reduce(0, (l,r) -> l+r);
        System.out.println(sum);
    }

7.List集合拼接成json对象集合 -> (list集合转json格式对象数值)

7.1实体类中

    public static String toJSON(Employee p) {
        return
                "{" +
                        "firstName: \"" + p.getName() + "\", " +
                        "lastName: \"" + p.getSalary() + "\", " +
                        "age: " + p.age + " " +
                        "}";
    }

7.2 调用

        String json =
                people.stream()
                        .map(Employee::toJSON)
                        .reduce("[", (l, r) -> l + (l.equals("[") ? "" : ",") + r)
                        + "]";
        System.out.println(json);
结果:
[{firstName: "田七", lastName: "7777.77", age: 27 },{firstName: "王五", lastName: "5555.55", age: 24 },{firstName: "张三", lastName: "3333.33", age: 23 },{firstName: "李四", lastName: "4444.44", age: 24 },{firstName: "赵六", lastName: "6666.66", age: 26 }]

8. 连接指定元素

    /**
     * 通过joining连接指定字段
     */
    @Test
    public void joining() {
        List<Employee> people = init();
        String joined = people.stream()
                .map(Employee::toJSON)
                .collect(Collectors.joining(", "));
        System.out.println("[" + joined + "]");
    }

3.Map

1.map集合遍历

for (Map.Entry<String, List<Integer>> entry : map.entrySet()) {
}
statisticGroup.entrySet().forEach(entry -> {})

2. 从集合中获取某个参数,单独组成一个集合

allCats.stream().map(CrmPrdCat::getCatId).collect(Collectors.toList());

3.将Map集合里面的值,同时添加到多个集合之中

List<Map<String,Object>> kindList = new ArrayList<Map<String,Object>>();
Set<Long> brandSet = new HashSet<>();
Set<Long> listSet = new HashSet<>();
Set<Long> catSet = new HashSet<>();

if(CollectionUtils.isNotEmpty(kindList)){
      for(Map<String,Object> dataMap : kindList){
           this.addId(dataMap,"brand_id",brandSet);
           this.addId(dataMap,"list_id",listSet);
           this.addId(dataMap,"cat_id",catSet);
      }
}	

4. 将list集合转换为Map集合

Map<String, List<Goods>> goodsByGoodsCode = goodsList.stream().collect(Collectors.groupingBy(Goods::getGoodsCode));

4. 堆栈信息

1. 打印当前方法的堆栈跟踪信息

StackTraceElement[] stackTrace = new Throwable().getStackTrace();

5. 程序异常打印

1. 打印异常堆栈信息

Throwables.getStackTraceAsString();//com.google.common.base 包下

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值