Như hình minh họa, sau khi chạy một phương pháp, tôi muốn xóa các mục cũ và chuẩn bị cho lần tính toán tiếp theo, nhưng tôi tự hỏi làm thế nào để loại bỏ các phần tử trong một arraylist bắt đầu từ một chỉ số được chỉ định, giống như một hàng đợi, tuân theo thuật toán FIFO? Cách xóa các phần tử trong danh sách mảng bắt đầu từ chỉ mục được chỉ định
Trả lời
Bạn có thể sử dụng List#subList(int, int):
List<Integer> list = ...
list = list.subList(10, list.size()); // creates a new list from the old starting from the 10th element
hay, kể từ khi subList
tạo ra một cái nhìn mà mỗi thay đổi ảnh hưởng đến danh sách ban đầu, đây có thể thậm chí tốt hơn:
List<Integer> list = ...
list.subList(0, 10).clear(); // clears the first 10 elements of list
Khi tôi sử dụng "purchase = (ArrayList
Logic là chính xác, nhưng chỉ đến với lỗi – atom2ueki
@ atom2ueki không sử dụng 'ArrayList' làm kiểu biến, sử dụng 'danh sách' như tôi đã làm với' danh sách' trong câu trả lời của tôi – Katona
Chỉ cần sử dụng phương pháp remove() cho việc này.
Giả sử bạn muốn loại bỏ các yếu tố với chỉ số 20-30 của một ArrayList
:
ArrayList<String> list = ...
for (int i = 0; i < 10; i++) { // 30 - 20 = 10
list.remove(20);
}
Khi phần tử đầu tiên tại index 20
được lấy ra yếu tố 21
di chuyển đến chỉ số 20
. Vì vậy, bạn phải xóa 10 lần phần tử tại chỉ mục 20
để xóa 10 phần tử tiếp theo.
phương pháp của bạn dường như chỉ xóa phần tử thứ 20 – atom2ueki
Bạn đã đọc câu bên dưới mã chưa? Không có "lỗ hổng" trong một danh sách mảng. Nếu bạn loại bỏ phần tử với chỉ mục 20 thì phần tử tiếp theo sẽ chuyển sang chỉ mục này. – micha
Tôi nghĩ rằng sẽ dễ dàng hơn nếu bạn có thể lặp lại từ 30 đến 20. Và sử dụng 'list.remove (i)' – mike
Vì bạn đang viết không có ứng dụng hiệu suất cao, đó là kiểu xấu để lưu trữ nhiều ngữ nghĩa trong một biến chỉ mục.
Cách tiếp cận tốt hơn sẽ là sử dụng bản đồ.
E. g. Map<Item, Integer> itemStock
và Map<Item, Double> prices
. Bạn sau đó cũng sẽ không có bất kỳ vấn đề với các hoạt động loại bỏ.
nhưng nếu sử dụng bản đồ, tôi vẫn cần một số nhận dạng cho mỗi bản đồ, nó có giống với danh sách ở đây không? xin lỗi, tôi không hoàn toàn hiểu ý bạn là gì – atom2ueki
Bản đồ không hoạt động với các chỉ mục, chúng hoạt động với các Phím. Các khóa là các đối tượng, đó là những gì ta sẽ làm trong OOP, nó dễ dàng hơn để duy trì mã với các mã định danh hơn là duy trì các mã trong đó các số nguyên có ý nghĩa vượt ra ngoài chỉ là một số. Bạn nên viết một lớp 'Item' hoặc sth. như vậy và sử dụng nó làm chìa khóa cho bản đồ. – mike
- 1. Phần tử chỉ mục từ danh sách trong Rcpp
- 2. Cách tính chỉ mục của phần tử trong danh sách?
- 3. Chỉ mục của phần tử trong danh sách trong Haskell
- 4. Chỉ mục mảng bắt đầu từ một số không 0
- 5. Cách giữ chỉ mục Danh sách được sửa trong Java
- 6. Lấy chỉ mục của một mục trong danh sách mảng;
- 7. Tìm phần tử với chỉ mục z được chỉ định
- 8. Việc lập chỉ mục mảng PLPGSQL bắt đầu từ 1?
- 9. Cách tìm chỉ mục của n phần tử lớn nhất trong danh sách hoặc np.array, Python
- 10. Làm cách nào để có danh sách các chỉ mục của các phần tử khác không trong danh sách?
- 11. Python/sage: danh sách có thể bắt đầu từ chỉ mục 1 không?
- 12. Tìm các chỉ mục của các phần tử phù hợp trong danh sách bằng Python
- 13. Tìm các chỉ mục của một phần tử trong danh sách lồng nhau?
- 14. Chỉ xóa phần tử đầu tiên khỏi lựa chọn jquery
- 15. Chỉ mục danh sách phủ định?
- 16. PS: Lấy chỉ mục trong danh sách mảng
- 17. lấy các phần tử được lập chỉ mục/lẻ từ Bộ sưu tập (Danh sách Bản đồ) trong Clojure
- 18. Xóa các phần tử con được đưa ra một chỉ mục?
- 19. Cách tìm chỉ mục chuỗi trong danh sách bắt đầu bằng một số chuỗi con?
- 20. Chỉ mục của phần tử trong mảng NumPy
- 21. emacs lisp: Cách xóa/xóa phần tử của danh sách?
- 22. Làm cách nào để tạo một mảng trong javascript có chỉ mục bắt đầu từ 1
- 23. Tự động xóa các phần tử khỏi Danh sách
- 24. Xóa các chỉ mục chung của mảng
- 25. Nhiều lát trong danh sách chỉ mục cho NumPy mảng
- 26. Xóa các phần tử trong stl :: vector bằng cách sử dụng các chỉ mục
- 27. Lấy các elemnt từ một ArrayList bằng cách chỉ định các chỉ mục
- 28. Sự cố khi xóa các phần tử khỏi danh sách khi lặp qua danh sách
- 29. Lấy một phần tử từ danh sách mảng trong Android?
- 30. cách xóa các phần tử không có lớp được chỉ định
@Katona :) tôi đi để đọc điều đó, hy vọng có thể tìm thấy một giải pháp – atom2ueki
trong khi chờ đợi, tôi quản lý một câu trả lời ngắn cũng như – Katona