cuốn sách gpt4 ai đã làm

Sử dụng các luồng để loại bỏ trùng lặp, sắp xếp và nhóm trong Java

In lại Tác giả: Người biết Thời gian cập nhật: 2024-03-13 09:16:02 30 4
mua khóa gpt4 Nike

Sử dụng các luồng để loại bỏ trùng lặp, sắp xếp và nhóm trong Java

1. khác biệt

1. Tám loại dữ liệu cơ bản

List coll = ListUtil.of(1, 2, 3, 1, 2).stream().filter(Objects::nonNull).distinct().collect(Collector.toList()); println(collect); Danh sách coll1 = ListUtil.of("user1", "user1", "user2").stream().filter(Objects::nonNull).distinct().collect(Collectors.toList()); System.out.println(collect1);

Kết quả đầu ra:

[1, 2, 3] [người dùng1, người dùng2]

2. Loại bỏ các đối tượng trùng lặp dựa trên một thuộc tính nhất định của Đối tượng trong Danh sách

dựa trên một thuộc tính

List userList = new ArrayList<>(Arrays.asList( new User(1L,new BigDecimal("10")),18), new User(1L,new BigDecimal("20"),19), new User( 2L,new BigDecimal("100"),18))); System.out.println("Trước khi chống trùng lặp"+userList =); userList.stream().collect(Collectors.collectingAndThen(Collectors.toCollection(() -> new TreeSet<>(Comparator.comparing(o -> o.getId()))), ArrayList::new)); out.println("Sau khi xóa trùng lặp"+userList);

Kết quả đầu ra:

Trước khi loại bỏ trùng lặp [Người dùng{id=1, money=10}, Người dùng{id=1, money=20}, Người dùng{id=2, money=100}] Sau khi loại bỏ trùng lặp [Người dùng{id=1, money=10 }, Người dùng{id=2, money=100}]

dựa trên nhiều thuộc tính

List userList = new ArrayList<>(Arrays.asList( new User(1L,new BigDecimal("10")),18), new User(1L,new BigDecimal("20"),19), new User( 2L,new BigDecimal("100"),18))); System.out.println("Trước khi chống trùng lặp"+userList =); userList.stream().collect(Collectors.collectingAndThen(Collectors.toCollection(() -> new TreeSet<>(Comparator.comparing(o -> o.getId() + ";" + o.getAge()))) , ArrayList::new)); System.out.println("Sau khi xóa bản sao"+userList);

Kết quả đầu ra:

Trước khi loại bỏ trùng lặp [Người dùng{id=1, money=10, age=18}, Người dùng{id=2, money=20, age=19}, Người dùng{id=3, money=100, age=17}] đi Lặp lại [Người dùng{id=1, money=10, tuổi=18}, Người dùng{id=2, money=20, age=19}, Người dùng{id=3, money=100, age=17}]

2. sắp xếp

1. Thứ tự tăng dần

List userList = new ArrayList<>(Arrays.asList( new User(1L,new BigDecimal("10")),18), new User(2L,new BigDecimal("20"),19), new User( 3L,New BigDecimal("100"),17))); System.out.println("trước khi sắp xếp"+userList =); userList.stream().sorted(Comparator.comparing(User::getAge)).collect(Collectors.toList()); System.out.println("Sau khi sắp xếp"+userList);

Kết quả đầu ra:

Trước khi sắp xếp [Người dùng{id=1, money=10, age=18}, Người dùng{id=2, money=20, age=19}, Người dùng{id=3, money=100, age=17}] Sau khi sắp xếp [Người dùng{id=3, money=100, age=17}, Người dùng{id=1, money=10, age=18}, Người dùng{id=2, money=20, age=19}]

2. Đảo ngược thứ tự

List userList = new ArrayList<>(Arrays.asList( new User(1L,new BigDecimal("10")),18), new User(2L,new BigDecimal("20"),19), new User( 3L,New BigDecimal("100"),17))); System.out.println("trước khi sắp xếp"+userList =); userList.stream().sorted(Comparator.comparing(User::getAge).reversed()).collect(Collectors.toList()); System.out.println("Sau khi sắp xếp"+userList);

Kết quả đầu ra:

Trước khi sắp xếp [Người dùng{id=1, money=10, age=18}, Người dùng{id=2, money=20, age=19}, Người dùng{id=3, money=100, age=17}] Sau khi sắp xếp [Người dùng{id=2, money=20, tuổi=19}, Người dùng{id=1, money=10, age=18}, Người dùng{id=3, money=100, age=17}]

3. Sắp xếp theo nhiều điều kiện

List userList = new ArrayList<>(Arrays.asList( new User(1L,new BigDecimal("10")),18), new User(2L,new BigDecimal("20"),19), new User( 3L,New BigDecimal("100"),18))); System.out.println("trước khi sắp xếp"+userList =); userList.stream().sorted(Comparator.comparing(User::getAge).thenComparing(User::getId)).collect(Collectors.toList()); System.out.println("Sau khi sắp xếp"+userList);

Kết quả đầu ra:

Trước khi sắp xếp [Người dùng{id=1, money=10, age=18}, Người dùng{id=2, money=20, age=19}, Người dùng{id=3, money=100, age=18}] Sau khi sắp xếp [Người dùng{id=1, money=10, tuổi=18}, Người dùng{id=3, money=100, age=18}, Người dùng{id=2, money=20, age=19}]

3. nhómBy

1. Nhóm theo lĩnh vực

List userList = new ArrayList<>(Arrays.asList( new User(1L,new BigDecimal("10")),18), new User(2L,new BigDecimal("20"),19), new User( 3L,BigDecimal mới("100"),18))); Bản đồ> thu thập = userList.stream().filter(Objects::nonNull).collect(Collectors.groupingBy(User::getAge)); System.out.println(collect);

Kết quả đầu ra:

{18=[Người dùng{id=1, money=10, tuổi=18}, Người dùng{id=3, money=100, age=18}], 19=[Người dùng{id=2, money=20, age= 19}]}

2. Nhóm dựa trên hai lĩnh vực

List userList = new ArrayList<>(Arrays.asList( new User(1L,new BigDecimal("10")),18), new User(2L,new BigDecimal("20"),19), new User( 3L,BigDecimal mới("100"),18))); Bản đồ>> thu thập = userList.stream().filter(Objects::nonNull) .collect(Collectors.groupingBy(User::getAge, Collectors.groupingBy(User::getMoney))); System.out.println(JSONUtil.toJsonStr(collect)) ;

Kết quả đầu ra:

3. Nhóm phức tạp

List userList = new ArrayList<>(Arrays.asList( new User(1L,new BigDecimal("10")),18), new User(2L,new BigDecimal("20"),19), new User( 3L,BigDecimal mới("100"),18))); Bản đồ>> thu thập = userList.stream().filter(Objects::nonNull) .collect(Collectors.groupingBy(User::getAge, Collectors.groupingBy(User::getMoney, Collectors.mapping(User::getId, Collectors.toList())) ) )); System.out.println(JSONUtil.toJsonStr(collect));

Kết quả đầu ra:

30 4 0
Chứng chỉ ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com
Xem sitemap của VNExpress