Tôi đã tạo hai danh sách từ cùng một mảng và sắp xếp một danh sách. Khi tôi cố thay đổi một danh sách, danh sách khác cũng được cập nhật.Đã tạo hai Danh sách từ cùng một mảng, Sửa đổi một Danh sách, thay đổi một Danh sách khác
List<Integer> list = Arrays.asList(ar);
List<Integer> sorted = Arrays.asList(ar);
Collections.sort(sorted);
list.set(0,10000000); //changes sorted also
Tôi mất một lúc để hiểu, mã được đề cập bên dưới hoạt động.
List<Integer> sorted = new ArrayList<Integer>(Arrays.asList(ar));
Tôi muốn biết lý do tại sao phương pháp tiếp cận đầu tiên của tôi đã không làm việc? Tôi đã tạo hai danh sách riêng biệt, tại sao các thay đổi đang diễn ra ở cả hai. Làm thế nào để java gán giá trị cho các biến ở đây?
'danh sách' và' sắp xếp' đang trỏ đến cùng một mảng, phải không? – Andrew
@AndrewTobilko: nhưng anh ấy chỉ sắp xếp một Danh sách. Tôi sẽ bỏ phiếu này như một câu hỏi thú vị. –
Tôi hơi ngạc nhiên rằng đây có vẻ là lần đầu tiên câu hỏi này được hỏi trên SO vì "vấn đề" cũ như bản thân 'Arrays' (java 1.2). Và tôi nghi ngờ tất cả mọi người đọc (và hiểu) javadoc cho đến bây giờ ... –