java工作中好用的方法
1.copyProperties() 复制对象参数的方法,当两个对象中的参数有一部分是一致的时候,用这个方法,不需要一个一个get,set参数了。
BeanUtils.copyProperties(传值对象,被传值对象);(这个不会自动转换类型,但是效率高)
PropertyUtils.copyProperties(传值对象,被传值对象);(这个方法会自动类型转换)
BeanUtils.copyProperties(传值对象,被传值对象)
PropertyUtils.copyProperties(传值对象,被传值对象);
2.contains()这个方法是验证两个字符串是否具有包含关系。
String a = "你好";
String b = "你好旧时光";
System.out.println(b.contains(a));//输出结果为true
contains的底层调用了indexof方法。
String a = "你好";
String b = "你好旧时光";
System.out.println(b.indexof(a));//输出结果为0
indexof返回int类型,如果有对应的字符串,返回的是第一个字符对应着的下标。如果没有返回的是-1。
contains()方法对indexof底层做了判断
if(b.indexof(a)>-1)
return true;
else
return false;
3.stream流
(1).使用Stream流对集合按照某一规则排序
//这里是按照number正序(从小到大)
List<T> resultList= list.stream.sorted(Comparator.comparing(Waring::number)).collect(Collectors.toList());
//这里是按照number倒序(从大到小)
List<T> resultList= list.stream.sorted(Comparator.comparing(Waring::number).reversed()).collect(Collectors.toList());
(2).使用stream获得集合中的某一列
List resultList= list.stream.map(m->m.getId()).collect(Collectors.toList());
为了防止空指针异常可以加一层过滤
List resultList= list.stream.filter(f->ObjectUtils.isNotEmpty(f.getId())).map(m->m.getId()).collect(Collectors.toList());
(3).使用stream对集合的某一列进行计算
DoubleSummaryStatistics scoreStatic = userList.stream().filter(item -> !ObjectUtils.isEmpty(item.getScore())).mapToDouble(item -> item.getScore().doubleValue()).summaryStatistics();
如果是其他数据格式这里也提供选择
DoubleSummaryStatistics 有五种方法,可以求和,求平均数,总数量,最大值,最小值。
如果是BigDecimal数据格式,可以使用一下的方式
BigDecimal streamSum = userList.stream().filter(item -> !ObjectUtils.isEmpty(item.getScore())).map(item -> item.getScore()).reduce(BigDecimal::add).get();
4.集合反转 Collections.reverse(list)(不需要接收)
5.获取集合指定下标的数据list.subList(formIndex,toIndex)
6.判空ObjectUtils.isEmpty();
7.list.addAll(),这个方法可快速将一个集合的数据添加到另外一个集合中,list和set可以互用,但是要注意set集合会去重。如果想从多个list中去重的话,可以将多个list的数据放到一个set中。