目录
3.2、 将String对象的每一个下标位的对象保存在char[]中
1、java8
1.1、分组(如下例子以用户姓名分组)
List<User> users=new ArrayList();
Map<String, List<User>> listMap = users.stream().collect(Collectors.groupingBy(h -> h.getUserName()));
for (String userName: listMap.keySet()) {
List<User> uList=listMap.get(userName);
}
//顺序不变
Map<String,List<A>> groupBySchool = alsRankingLists.stream().collect(Collectors.groupingBy(AlsRankingList::getClassName, LinkedHashMap::new, Collectors.toList()));
1.2、过滤(通过某些条件过滤)
一、
List<User> userFilterList= users.stream().filter(s ->
A.getName().equals(s.getUserName())).collect(Collectors.toList());
二、
List<User> list= A.stream().filter(x -> {
List<B> subjectsList = x.getSubjectsList();
List<B> subjects = subjectsList.stream().filter(ma -> ma.getSchoolRank().longValue() > getNumResult.longValue()).collect(Collectors.toList());
if (ObjectUtil.isNotEmpty(subjects) && ObjectUtil.length(subjects) > 0) {
return false;
} else {
return true;
}
}).collect(Collectors.toList());
1.3、获取List中某个实体属性的List集合
List<AlsRankingListSubjects> subjectsList = alsRankingLists.stream().map(AlsRankingList::getSubjectsList).flatMap(Collection::stream).collect(Collectors.toList());
1.4、 下划线转驼峰
List<Map<String, Object>> maps = Mapper.selectList(a);
if (ObjectUtil.isNotNull(maps)) {
List<Map<String, Object>> result = maps.stream()
.map(MapUtil::toCamelCaseMap)
.collect(Collectors.toList());
return result;
}
1.5、按照一定的规则过滤集合中的元素
//过滤30以上的用户
List<User> users=new ArrayList();
users.removeIf(
user->user.getAge()>=30
);
1.6、 给List<Class>的某个属性赋值
一、
Integer totalReadNum = teacherReviewProgressList.stream().mapToInt(t -> Convert.toInt(t.getReadNumber())).sum();
//总剩余量(题块总数-阅卷老师阅卷数)
Integer waitNumber = total - totalReadNum;
//总数=等我阅数量+总阅量
teacherReviewProgressList = teacherReviewProgressList.stream().map(x -> {
x.setTotalNumber(Convert.toStr(waitNumber + Convert.toInt(x.getReadNumber())));
return x;
}).collect(Collectors.toList());
return teacherReviewProgressList;
二、
AtomicInteger tempRanking = new AtomicInteger(1);
AtomicReference<String> tempComprehensiveRate = new AtomicReference<>("");
classCompares = classCompares.stream().map(x -> {
if (StrUtil.isNotEmpty(tempComprehensiveRate.get())) {
if (!x.getComprehensiveRate().equals(tempComprehensiveRate.get())) {
tempRanking.set(tempRanking.get() + 1);
}
}
tempComprehensiveRate.set(x.getAverage());
x.setComprehensiveRateRanking(Convert.toStr(tempRanking.get()));
return x;
}).collect(Collectors.toList());
return classCompares;
1.7、 获取集合属性的集合
List<AlsRankingListSubjects> subjectsList = alsRankingLists.stream().map(AlsRankingList::getSubjectsList).flatMap(Collection::stream).collect(Collectors.toList());
1.8、平均数
Double average = rankingLists.stream().mapToDouble(x -> x.getTotalGradingAchievement()).summaryStatistics().getAverage();
1.9、 根据多个字段去重
List<AlsRankingListSubjects> subjectsList = subjectsList.stream()
.collect(Collectors.collectingAndThen(Collectors.toCollection(() -> new TreeSet<>(Comparator.comparing(o -> o.getSubjectId() + ";" + o.getSubjectName()))), ArrayList::new));
2.0、排序
1、升序
list.stream().sorted(Comparator.comparing(User::getUserId));
2、降序
list.stream().sorted(Comparator.comparing(User::getUserId, Comparator.reverseOrder()));
2.1、复制
复制list
List<User> users= CglibUtil.copyList(list, User::new);
复制类
User user= new User();
BeanUtil.copyProperties(userData, user);
2、hutool
2.1、数[]组转化成List<>
①CollUtil
String[] col = new String[]{"1", "2"};
List<String> list= CollUtil.newArrayList(col);
②Convert
String[] aArray = {"许七安", "许新年", "褚采薇", "许玲月", "许玲音"};
List<String> aList = Convert.toList(String.class, aArray);
2.2 、日期转字符串
//当前时间
Date date1 = DateUtil.date();
//根据表达式输出
String format1=DateUtil.format(date1,"yyyy-MM-dd");
System.out.println("format1:"+format1);
//yyyy-MM-dd
String format2=DateUtil.formatDate(date1);
System.out.println("format2:"+format2);
//yyyy-MM-dd HH:mm:ss
String format3=DateUtil.formatDateTime(date1);
System.out.println("format3:"+format3);
//HH:mm:ss
String format4=DateUtil.formatTime(date1);
System.out.println("format4:"+format4);
2.3、判断两个时间间隔的分钟
Date createTime = scantronTeacherBlockRel.getCreateTime();
Date now = DateUtil.date();
long betweenMinute = DateUtil.between(now, createTime, DateUnit.MINUTE);
2.4、包含
ObjectUtil.contains(mList, markType)
2.5、ListUtil
List<AlsGradeParameterSettingDetail> settingDetails = ListUtil.toList(
new AlsGradeParameterSettingDetail(StringUtils.UUID(), setting.getSettingId(), "A", new BigDecimal(85), 1),
new AlsGradeParameterSettingDetail(StringUtils.UUID(), setting.getSettingId(), "B", new BigDecimal(70), 2),
new AlsGradeParameterSettingDetail(StringUtils.UUID(), setting.getSettingId(), "C", new BigDecimal(60), 3)
);
3、其他常用方法
3.1、list转数组
List<String> strList = new ArrayList<>();
strList.add("1");
strList.add("2");
String[] strArray = strList.toArray(new String[strList.size()]);
3.2、 将String对象的每一个下标位的对象保存在char[]中
String a = "abcd";
char[] b = a.toCharArray();
结果是['a','b','c','d']
3.3、类中的每一个字段赋一个相同的值
InfoDomain w = new InfoDomain();
Field[] fields = InfoDomain.class.getDeclaredFields();
try {
for (Field field : fields) {
field.setAccessible(true);
field.set(w, "0");
}
} catch (IllegalAccessException e) {
throw new RuntimeException(e);
}
3.4、获取本地IP和mac地址
InetAddress inetAddress = null;
try {
inetAddress = InetAddress.getLocalHost();
} catch (UnknownHostException e) {
throw new RuntimeException(e);
}
String macAddress = NetUtil.getMacAddress(inetAddress);
本文介绍了Java 8的Stream API进行分组、过滤、属性获取、驼峰命名转换,以及如何使用Hutool处理数组、日期处理、集合操作和常见工具方法。涵盖了列表操作、数据处理和基础技术应用。
170万+

被折叠的 条评论
为什么被折叠?



