Tôi có một ArrayList, bao gồm một số mục tôi muốn xóa. Tôi có các id của các mục cần xóa được lưu trữ trong danh sách khác. Tìm đoạn mã sau nên làm việc trivially, nhưng đối với một số lý do, phương thức remove() các cuộc gọi được trả lại một giá trị sai:Tại sao lệnh gọi ArrayList.remove (id) của tôi không hoạt động?
ArrayList<Integer> toRemove = new ArrayList<Integer>();
ArrayList<JCheckBox> al = new ArrayList<JCheckBox>();
/* Code that adds a bunch of items to al, and a few integers to toRemove */
System.out.println("Size before removing: " + al.size());
for (int i = toRemove.size() - 1; i >= 0; i--) {
System.out.println("Removing id: " + toRemove.get(i) + ": ");
System.out.println(al.get(toRemove.get(i)));
System.out.println(al.remove(toRemove.get(i)));
}
System.out.println("Size after removing: " + al.size());
Tôi muốn có được nó nếu get() gọi cũng trả lại một giá trị sai, nhưng nó thực sự trả về đối tượng được đề cập. Tôi đang thiếu gì ở đây?
Kết quả của đoạn code trên:
Size before removing: 3
Removing id: 2:
javax.swing.JCheckBox[...]
false
Size after removing: 3
Bạn có thể đăng các khai báo chính xác cho 'al' và 'toRemove' không? –
Đã đăng các định nghĩa được yêu cầu. – zigdon