tương tự câu hỏi see: How to make HashMap work with Arrays as key?Làm thế nào để TreeMap hoạt động với các mảng làm khóa?
Nhưng tôi cần TreeMap như ((int key1, int key2) -> String)
, so sánh key1
sau đó so sánh key2
.
giải pháp của tôi là:
Map<int[], String> map = new TreeMap<>(Comparator.
<int[]>comparingInt(key -> key[0]).thenComparingInt(key -> key[1]));
Nhưng khi tôi cần ((int key1, int key2, int key3) -> String
, tôi phải viết thêm.
Có cách nào để tạo Bộ so sánh cho các mảng có độ dài tùy ý không?
Có lẽ cách tốt nhất là nên chỉ cần viết một 'Comparator' mà không chính xác điều đó. Tôi nghi ngờ rằng có thể được thực hiện hợp lý và dễ hiểu với lambdas. Nếu bạn có thể làm điều đó với một lambda, đi cho nó, nhưng cá nhân tôi chỉ cần sử dụng Java thường xuyên. – Obicere