Tôi cần kiểm tra xem bản đồ có chứa bất kỳ khóa nào trong danh sách hay không và nếu bản đồ đó trả về giá trị khớp đầu tiên. Cách tiếp cận ngây thơ đến với tâm trí là làm điều đó trong hai vòng lồng nhau:Cách hiệu quả để tìm xem bản đồ có chứa bất kỳ khóa nào từ danh sách/có thể lặp lại
Map<String, String> fields = new HashMap<String, String>();
fields.put("a", "value a");
fields.put("z", "value z");
String[] candidates = "a|b|c|d".split("|");
for (String key : fields.keySet()){
for (String candidate : candidates) {
if (key.equals(candidate)){
return fields.get(key);
}
}
}
Có cách nào đẹp hơn và hiệu quả hơn, có thể dựa vào thư viện chuẩn Java?
Đây là hiệu quả như nó có thể nhận được, nhưng nó có thể trở nên phức tạp nếu 'null' là giá trị được phép trong' Bản đồ'. –
Thú vị ... Tôi có hiểu chính xác rằng ý tưởng là chỉ sử dụng bản đồ.get() 'một lần thay vì' map.contains() + map.get() 'vì điều đó sẽ tránh được lần tra cứu thứ hai? Đó là gọn gàng! – ccpizza
@NimChimpsky retainTất cả là tiêu cực. –