Trình biên dịch phàn nàn về mã này:Tại sao trình biên dịch Java không giống như int nguyên thủy như kiểu cho các giá trị trong HashMap?
HashMap<String,int> userName2ind = new HashMap<String,int>();
for (int i=0; i<=players.length; i++) {
userName2ind.put(orderedUserNames[i],i+1);
}
Nó viết "loại bất ngờ" và điểm trên int
. Nếu tôi thay thế int
theo String
và i+1
theo i+"1"
, quá trình biên dịch sẽ thành công. Có gì sai ở đây?
Không i + "1" kết thúc bằng "01" cho i == 0; "11" cho i == 1 vv? – extraneon
Có. i + "1" kết thúc bằng "01" cho i == 0, v.v. – Roman
googling "java hashmap int" trỏ tới nhiều tài liệu tham khảo đã yêu cầu/giải quyết vấn đề này. Hãy nghiên cứu câu hỏi của bạn trước. – user2573153