java8新特性以及guava用法

1、提取list集合中bean的某一属性

List uniqueList = result.stream().map(ComplaintsPdMappingSource::getSourceId).distinct().collect(Collectors.toList());

2、判断某一个值是否存在list集合中:

/**
     * 转换字符串为bool
     * 只有T或者true才返回true,其它返回false
     */
    public static boolean anyEquals(final String strValue, final String... args){
        Predicate condtion = s -> strValue.equalsIgnoreCase(s);
        List list = Lists.newArrayList(args);
        return list.stream().anyMatch(condtion);
    }

3、如果orderTypeList等于null,那么返回一个初始化为10的集合

orderTypeList =  Optional.of(orderTypeList).orElse(Lists.newArrayListWithCapacity(ConstVars.NUMBER_10));

4、将一个List集合以某一个字符串拼接成一个字符串:

eg: 集合{1,2,3}以,拼接后是1,2,3

ccUsers = lists.stream().collect(Collectors.joining(";"));

5、将一个List集合以某一个字段排序,并返回第一个:

Object c = list.stream().sorted(Comparator.comparing(User::getname())).findFirst().get();

6、将一个Map以key排序,返回一个新的map;

Map newMap = maps.entrySet().stream().sorted(Map.Entry.comparingByKey()).collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue,

7、将一个List集合中以bean的某一个属性进行去重:

 List complaintsResult =  List.stream().collect(Collectors.collectingAndThen(
                Collectors.toCollection(() -> new TreeSet<>(Comparator.comparing(o -> o.getId()))), ArrayList::new));

8、将一个List集合中以bean的某一个属性排序:

result.stream().sorted((user u1, EventOperationInfo u2) -> u1.getAge().compareTo(u2.getAge()));

9、在一个List集合中求bean中某一个属性的最大的bean;

categoryIds.stream().max((e1, e2)-> e2.getLevel().compareTo(e1.getLevel())).get().getCategoryName();

10、对一个lis集合中所有bean的某一个属性求和

        BigDecimal totalAmount = complaintsRefunds.stream().map(s -> s.getRefundAmount()).reduce(BigDecimal.ZERO, BigDecimal::add);

 

你可能感兴趣的:(java基础)