java 数组操作

去重
List<PolicySalaryVO> policySalaryVO = policySalaryDTOList
.stream()
.map(PolicySalaryVO::new)
.collect(Collectors.collectingAndThen(Collectors.toCollection(() -> new TreeSet<>(Comparator.comparing(PolicySalaryVO::getType))), ArrayList::new));


分组
Map<Integer, List<PolicySalaryVO>> policySalaryDTOList2 = policySalaryDTOList
.stream()
.map(PolicySalaryVO::new)
.collect(Collectors.groupingBy(PolicySalaryVO::getType));

insertMergeTaxMap = insertMergeTaxList.stream().collect(Collectors.groupingBy(item -> getTaxMapKey(item)));
private String getTaxMapKey(CreateTaxPayDetailMergeVO obj) {
return obj.getSalarySupplierId() + "_" + obj.getType() + "_" + obj.getTaxRule() + "_" + obj.getUserId();
}

重赋值
List<SupplierCmbapiConfigListVo> configs = config.stream().map(v->{
SupplierCmbapiConfigListVo vo = new SupplierCmbapiConfigListVo();
vo.setId(v.getId());
vo.setSupplierId(v.getSupplierId());
vo.setIsDefault(v.getIsDefault());
vo.setType(v.getType());
vo.setTypeName(SupplierCmbapiConfigEnum.matchEnum(v.getType()));
return vo;
}).collect(Collectors.toList());

打印数组
Arrays.asList(cmowers).stream().forEach(s -> System.out.println(s));
Stream.of(cmowers).forEach(System.out::println);
Arrays.stream(cmowers).forEach(System.out::println);
System.out.println(Arrays.toString(cmowers));
多维数组
System.out.println(Arrays.deepToString(deepArray));

反射打印类的属性和值
public static void printFields(Object obj) {
Class clazz = obj.getClass();
Field[] fields = clazz.getDeclaredFields();
for (Field field : fields) {
field.setAccessible(true);
String fieldName = field.getName();
Object fieldValue = null;
try {
fieldValue = field.get(obj);
} catch (IllegalAccessException e) {
e.printStackTrace();
}
System.out.println(fieldName + ": " + fieldValue);
}
}

posted @ 2023-05-04 09:38  给香菜送点香菜  阅读(18)  评论(0)    收藏  举报