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

Bản đồ băm Java 8<整数,><整数>>

In lại Tác giả: Taklimakan Thời gian cập nhật: 2023-11-01 23:01:11 26 4
mua khóa gpt4 Nike

Tôi mới sử dụng Java 8 và muốn sắp xếp Bản đồ dựa trên các khóa, sau đó sắp xếp từng danh sách theo các giá trị.

Tôi đang cố gắng tìm cách Java 8 để sắp xếp các khóa và giá trị. HashMap>Bản đồ

map.entrySet().stream().sorted(Map.Entry.comparingByKey())
.collect(Collector.toMap(Map.Entry::getKey,
Map.Entry::getValue, (e1, e2) -> e2, LinkedHashMap::new));

Tôi có thể sắp xếp Bản đồ, tôi có thể thu thập từng giá trị trong bản đồ để sắp xếp, nhưng đây là một cách chúng tôi có thể thực hiện trong java 8 và kết hợp cả hai.

câu trả lời hay nhất

Để sắp xếp theo khóa bạn có thể sử dụng Bản đồ cây. Để sắp xếp từng danh sách theo giá trị bạn có thể sử dụng Map.values().forEach() phương thức lặp lại các giá trị của bản đồ và sau đó sử dụng List.sort sắp xếp từng danh sách. Đặt chúng lại với nhau:

Map>sortByKey = new TreeMap<>(yourMap);

SortByKey.values().forEach(list -> list.sort(null)); // null: thứ tự tự nhiên

cái này cho mỗi danh sáchTại chỗĐã sắp xếp, có nghĩa là danh sách ban đầu đã thay đổi.


Nếu bạn muốn tạo không chỉ bản đồ mới mà còn cả danh sách mới cho từng giá trị, bạn có thể thực hiện như sau:

Map>sortByKey = new TreeMap<>(yourMap);

SortByKey.replaceAll((k, originalList) -> {
Danh sách newList = new ArrayList<>(originList);
newList.sort(null); // null: thứ tự tự nhiên
trả về danh sách mới;
});

biên tập:

Dựa trên những gợi ý trong nhận xét, bạn có thể muốn thay đổi:

SortByKey.values().forEach(list -> list.sort(null));

Vượt qua một trong hai:

SortByKey.values().forEach(Collections::sort);

或者:

SortByKey.values().forEach(list -> list.sort(Comparator.naturalOrder()));

và sử dụng null 作为 Danh sách.sort Một trong hai tùy chọn trên có tính biểu cảm cao hơn và thể hiện ý định của nhà phát triển theo cách tốt hơn so với đối số so sánh của phương thức.

Những cân nhắc tương tự cũng áp dụng cho các phương pháp trong đó danh sách không được sửa đổi tại chỗ.

Về Java 8 HashMap>, chúng tôi đã tìm thấy một câu hỏi tương tự trên Stack Overflow: https://stackoverflow.com/questions/51804086/

26 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