河南省建设教育中心的网站,亦庄网站建设,网络推广比较经典和常用的方法有,网络推广营销实施方案前言
现在Java已经发展到Java19版本了#xff0c;由于Java后面一些版本#xff0c;就开始商用收费了#xff0c;所以目前绝大多数公司的JDK版本都是采用的之前稳定且免费的1.8版本#xff0c;也就是Java8#xff0c;这个版本已经能满足几乎所有业务的需求开发了#xff…前言
现在Java已经发展到Java19版本了由于Java后面一些版本就开始商用收费了所以目前绝大多数公司的JDK版本都是采用的之前稳定且免费的1.8版本也就是Java8这个版本已经能满足几乎所有业务的需求开发了下面我列举几个Java8中的一些常见写法。
1. 循环遍历
示例循环打印集合对象信息
常规写法
for (User user : users) {System.out.println(user.toString());
}Java 8 写法
users.forEach(o - System.out.println(o.toString()));2. 函数式接口匿名内部类
示例多线程异步打印
常规写法
new Thread(new Runnable() {Overridepublic void run() {System.out.println(hello world);}
}).start();Java 8 写法
new Thread(() - System.out.println(hello world)).start();3. 排序升序版从小到大
示例用户年龄小到大排序
常规写法
Collections.sort(userList, new ComparatorUser() {Overridepublic int compare(User o1, User o2) {return o1.getAge() - o2.getAge();}
});Java 8 写法1基础版
Collections.sort(userList, (o1, o2) - o1.getAge() - o2.getAge());Java 8 写法2进阶版
Collections.sort(userList, Comparator.comparingInt(User::getAge));Java 8 写法3终极版
userList.sort(Comparator.comparingInt(User::getAge));【注】数值比较可以直接相减排序非数值比较请用 compareTo() 方法。 【如】 return o1.getName().compareTo(o2.getName());
4. 排序降序版从大到小
示例用户年龄小到大排序
常规写法
Collections.sort(userList, new ComparatorUser() {Overridepublic int compare(User o1, User o2) {return o2.getAge() - o1.getAge();}
});Java 8 写法1基础版
Collections.sort(userList, (o1, o2) - o2.getAge() - o1.getAge());Java 8 写法2终极版
userList.sort((o1, o2) - o2.getAge() - o1.getAge());5. 过滤
示例过滤年龄小于18的用户
常规写法
ListUser users new ArrayList();
for(User u: userList){if (u.getAge() 18) {users.add(u);}
}Java 8 写法
ListUser users userList.stream().filter(u - u.getAge() 18).collect(Collectors.toList());6. 求和
示例求所有用户的年龄总和
常规写法
int sum 0;
for(User u: userList){sum u.getAge();
}
System.out.println(年龄总和 : sum);Java 8 写法
int sum userList.stream().mapToInt(User::getAge).sum();
System.out.println(年龄总和 : sum);7. 求最大值
示例求所有用户中最大年龄
常规写法
int maxAge 0;
for(User u: userList){if (u.getAge() maxAge) {maxAge u.getAge();}
}
System.out.println(最大年龄 : maxAge);Java 8 写法
int maxAge userList.stream().mapToInt(User::getAge).max().getAsInt();
System.out.println(最大年龄 : maxAge);8. 求最小值
示例求所有用户中最小年龄
常规写法
int maxAge Integer.MAX_VALUE;
for(User u: userList){if (u.getAge() maxAge) {maxAge u.getAge();}
}
System.out.println(最小年龄 : maxAge);Java 8 写法
int minAge userList.stream().mapToInt(User::getAge).min().getAsInt();
System.out.println(最小年龄 : minAge);9. 求平均值
示例求所有用户平均年龄
常规写法
int sum 0;
int size userList.size();
for(User u: userList){sum u.getAge();
}
double aveAge (double) sum / size;
System.out.println(平均年龄 : aveAge);Java 8 写法
double aveAge userList.stream().mapToInt(User::getAge).average().getAsDouble();
System.out.println(平均年龄 : aveAge);10. 获取属性集合
示例获取所有用户的 id 集合
常规写法
ListLong ids new ArrayList();
for(User u: userList){ids.add(u.getId());
}Java 8 写法
ListLong ids userList.stream().map(User::getId).collect(Collectors.toList());11. List 转 Map
示例将所有用户 List 集合转为 Map 集合且 id 为键
常规写法
MapLong, User userMap new HashMapLong, User();
for (User user : users) {userMap.put(user.getId(), user);
}Java 8 写法
MapLong, User userMap users.stream().collect(Collectors.toMap(User::getId, Function.identity