1、集合循环 forEach
public static void main(String[] args) {
List<Integer> list = new ArrayList<>();
list.add(1);
list.add(2);
list.add(3);
list.add(4);
// 1、第一种
list.forEach( p -> System.out.println(p));
System.out.println("=========================================");
// 2、第一种
list.forEach( p -> {
int i = 1;
System.out.println(i + p);
});
// 3、第三种
System.out.println("=========================================");
list.forEach( p -> {
String test = test(1 + p);
System.out.println(test);
});
}
public static String test(Integer integer) {
return "测试返回 " + integer;
}
2、去集合中对象的某一属性最小值
// 过滤得到最小值
Optional<BigDecimal> priceOption = product.stream()
.filter(product -> product.gePrice() != null)
.map(Product::getPrice).reduce(BigDecimal::min);
// 当optional值不存在时,调用orElse()返回orElse()的参数,如果optional的值存在时返回optional的值
BigDecimal minPrice = priceOption.orElse(new BigDecimal(0));
3、List根据某一属性进行排序
public static void main(String[] args) {
List<Integer> list = new ArrayList<>();
list.add(1);
list.add(4);
list.add(2);
list.add(3);
// 正序
list.sort(Comparator.comparing(Integer::intValue));
// list.sort((o1, o2) -> o1.intValue() - o2.intValue());
System.out.println(JSON.toJSONString(list));
// 倒序
list.sort(Comparator.comparing(Integer::intValue).reversed());
System.out.println(JSON.toJSONString(list));
}
4、list 根据某一对象属性分组
Map<String, List<Product>> map = data.stream().collect(Collectors.groupingBy(Product::getId));
5、list 取出某一属性list,并通过distinct去重
List<String> productIds = list.stream().map(Product::getId).distinct().collect(Collectors.toList())
6、list 转map
// 某一属性Map
Map<String, String> nameMap = products.stream().collect(Collectors.toMap(p -> p.getId(), Product::getName));
// 整个对象Map
Map<String, Product> productMap = products.stream().collect(Collectors.toMap(p -> p.getId(), p -> p));
7、过滤某些数据
public static void main(String[] args) {
List<Integer> list = new ArrayList<>();
list.add(1);
list.add(4);
list.add(2);
list.add(3);
List<Integer> integerList = list.stream().filter(a -> a >= 3).collect(Collectors.toList());
System.out.println(integerList);
}
8、列表数据去重,并保持排序
import com.alibaba.fastjson.JSON;
import lombok.Data;
import java.util.ArrayList;
import java.util.Comparator;
import java.util.List;
import java.util.TreeSet;
import java.util.stream.Collectors;
/**
* @description:
* @author: shiDong.zou
* @create: 2021-02-25 15:24
**/
public class TestMain {
public static void main(String[] args) {
User user1 = new User("zhang San", 10);
User user2 = new User("li Si", 20);
User user3 = new User("zhang San", 20);
User user4 = new User("li Si", 20);
User user5 = new User("wang Wu", 30);
List<User> userList = new ArrayList<>();
userList.add(user1);
userList.add(user2);
userList.add(user3);
userList.add(user4);
userList.add(user5);
//对集合的结果进行去重
List<User> list = userList.stream()
.collect(Collectors.collectingAndThen(Collectors.toCollection(
() -> new TreeSet<>(Comparator.comparing(User::getUserName))
), ArrayList::new));
System.out.println(JSON.toJSONString(list));
List<User> list2 = userList.stream()
.collect(Collectors.collectingAndThen(Collectors.toCollection(
() -> new TreeSet<>(Comparator.comparing(p -> p.getUserName() + ";" + p.getAge()))
), ArrayList::new));
System.out.println(JSON.toJSONString(list2));
}
}
@Data
class User {
//用户姓名
private String userName;
// 用户年龄
private Integer age;
public User(String userName, Integer age) {
this.userName = userName;
this.age = age;
}
}
* 暂时用到的就这些,不全乎的大家可以在评论中补充