Cách sử dụng Java ArrayList

Cách sử dụng Java ArrayList

Sang Java Lập danh sách là một mảng có thể thay đổi kích thước cho mục đích chung. Nó cung cấp hầu hết các tiện ích thường được mong đợi của các mảng trong các ngôn ngữ khác. Chúng bao gồm: truy cập các phần tử bằng cách sử dụng chỉ mục, thêm, xóa và cập nhật các phần tử, định lại kích thước động, lặp qua các phần tử, v.v. Hầu hết các thao tác này đã được tinh chỉnh đặc biệt cho mục đích sử dụng chung.





bàn phím và chuột chơi game cho ps4

Có một số loại 'mảng' khác (các lớp triển khai Danh sách giao diện, mang tính kỹ thuật) được dành cho các mục đích đặc biệt. Bao gồm các:





  • LinkedList hỗ trợ chèn và loại bỏ nhanh chóng tại các chỉ số trung gian.
  • Véc tơ tương tự như một Lập danh sách nhưng được đồng bộ hóa và phù hợp thay cho một Lập danh sách cho các ứng dụng đa luồng.
  • Cây rơm hỗ trợ các hoạt động để bắt chước danh sách cuối cùng vào - ra trước. Nó mở rộng Véc tơ và do đó được đồng bộ hóa.

Các lớp đặc biệt này nằm ngoài phạm vi của bài viết này. Tuy nhiên, bạn sẽ học cách thiết lập và sử dụng Java ArrayList có mục đích chung.





Tạo ArrayList

Tạo một Lập danh sách Thì đơn giản. Trống rỗng Lập danh sách có thể được tạo bằng cách sử dụng hàm tạo không đối số. Ở đây chúng tôi tạo một danh sách mảng trống để giữ các chuỗi.

ArrayList alist = new ArrayList();

Nếu bạn tình cờ biết danh sách mảng của mình sẽ chứa bao nhiêu mục, bạn có thể chỉ định dung lượng ban đầu. Dung lượng ban đầu này chỉ là một gợi ý để cấp phát bộ nhớ - danh sách mảng không bị giới hạn trong việc giữ số lượng mục đã chỉ định. Nếu bạn biết và chỉ định dung lượng ban đầu, bạn có thể được cải thiện một chút về hiệu suất.



ArrayList alist = new ArrayList(20);

Điền vào một ArrayList

Thêm các mục ở cuối

Việc điền vào một danh sách mảng khá dễ dàng. Chỉ cần sử dụng cộng() để thêm một mục duy nhất vào cuối danh sách mảng. Đây là một ví dụ:

ArrayList alist = new ArrayList();
alist.add('apple');
alist.add('banana');
alist.add('cantaloupe');
alist.add('orange');
System.out.println(alist);
# prints
[apple, banana, cantaloupe, orange]

Để tìm có bao nhiêu mục trong danh sách mảng, hãy sử dụng phương pháp kích thước() .





System.out.println('Number of elements in the arraylist: ' + alist.size());
# prints
Number of elements in the arraylist: 4

Thêm các mục tại một chỉ mục được chỉ định

Bạn muốn thêm một mục ở một chỉ mục tùy ý? Chỉ định chỉ mục làm đối số đầu tiên và mục được thêm vào chỉ mục đó:

alist.add(3, 'grapes');
System.out.println(alist);
# prints
[apple, banana, cantaloupe, grapes, orange]

Thêm một loạt các mặt hàng

Bạn cũng có thể thêm các mục từ bất kỳ bộ sưu tập nào trong Hệ thống phân cấp bộ sưu tập Java. Một Lập danh sách là một loại cụ thể được gọi là Danh sách . Đây là một cách để xây dựng một Danh sách từ một loạt các mục (sử dụng Arrays.asList () ) và thêm nó vào một Lập danh sách .





List items = Arrays.asList('pear', 'cherry');
alist.addAll(items);
System.out.println(alist);
# prints
[apple, banana, cantaloupe, grapes, orange, pear, cherry]

Tất nhiên, bạn có thể chỉ định một chỉ mục làm đối số đầu tiên ở đây để thêm các mục bắt đầu từ chỉ mục đó.

Truy cập các mục

Khi các mục đã được thêm vào danh sách mảng, làm cách nào để chúng ta truy cập lại chúng?

Truy cập bằng chỉ mục

Nếu bạn biết chỉ mục của mặt hàng, bạn có thể sử dụng hiểu được() phương thức để truy xuất phần tử tại chỉ mục đó.

duyệt web riêng tư có thể được theo dõi trên iphone
String item = alist.get(2);
System.out.println('Item at index 2 is: ' + item);
# prints
Item at index 2 is: cantaloupe

Tìm vật phẩm

Điều gì sẽ xảy ra nếu bạn không biết chỉ số của mặt hàng? Bạn có thể dùng Chỉ số() để kiểm tra xem mục có trong mảng hay không và truy xuất mục đó bằng cách sử dụng chỉ mục trả về.

System.out.println(alist);
int index = alist.indexOf('orange');
if ( index <0 )
System.out.println('Item 'orange' not found');
else
System.out.println('Item 'orange' found at index ' + index);
# prints
[apple, banana, cantaloupe, grapes, orange, pear, cherry]
Item 'orange' found at index 4

Điều gì sẽ xảy ra nếu mục không có trong danh sách mảng? Các Chỉ số() phương thức trả về -1 khi không tìm thấy mục.

index = alist.indexOf('grape');
if ( index <0 )
System.out.println('Item 'grape' not found');
else
System.out.println('Item 'grape' found at index ' + index);
# prints
Item 'grape' not found

Lặp lại trên một ArrayList

Tất nhiên, cách sử dụng phổ biến nhất của Lập danh sách đang lặp lại các phần tử. Điều này có thể được thực hiện theo một số cách. Chúng tôi hiển thị một vài cái đơn giản ở đây.

Đây là cách đơn giản nhất để lặp qua một danh sách mảng và trích xuất các mục cho một số loại xử lý.

for (String fruit : alist) {
System.out.println('Found fruit '' + fruit + ''');
}
# prints
Found fruit 'apple'
Found fruit 'banana'
Found fruit 'cantaloupe'
Found fruit 'grapes'
Found fruit 'orange'
Found fruit 'pear'
Found fruit 'cherry'

Mã này sử dụng Java Enhanced For-Loop đã được giới thiệu trong Java 1.5. Trước đó, bạn có thể lặp lại các mục bằng một trình vòng lặp. Một trình lặp cũng được sử dụng khi bạn cần tẩy các phần tử trong quá trình lặp như ví dụ minh họa bên dưới. (Lưu ý rằng chúng tôi tạo một bản sao của danh sách mảng và làm việc trên bản sao.)

ArrayList blist = new ArrayList(alist);
for (Iterator iter = blist.iterator() ; iter.hasNext() ; ) {
String fruit = iter.next();
if ( fruit.startsWith('c') )
iter.remove();
else
System.out.println('Keeping '' + fruit + ''');
}
# prints
Keeping 'apple'
Keeping 'banana'
Keeping 'grapes'
Keeping 'orange'
Keeping 'pear'

Thay thế các mặt hàng

Sau khi các mục được thêm vào, chúng ta cần một cách để thay thế các mục không mong muốn. Điều đó có thể được thực hiện bằng cách sử dụng bộ() phương pháp với một chỉ mục.

alist.set(5, 'pineapple');
System.out.println(alist);
# prints
[apple, banana, cantaloupe, grapes, orange, pineapple, cherry]

Loại bỏ các mục

Bây giờ chúng ta hãy xem cách chúng ta có thể xóa các mục khỏi danh sách mảng. Nếu bạn biết chỉ mục của mặt hàng (có lẽ bạn đã sử dụng Chỉ số() được mô tả ở trên), bạn có thể sử dụng tẩy() phương pháp với chỉ mục. Nó trả về phần tử đã bị loại bỏ.

String fruit = alist.remove(2);
System.out.println('Removed element at 2: ' + fruit);
# prints
Removed element at 2: cantaloupe

Bạn cũng có thể chỉ định phần tử để loại bỏ đầu tiên sự xuất hiện của phần tử trong danh sách. Phương thức trả về thật nếu phần tử được tìm thấy và bị loại bỏ.

chạy máy ảo trên hệ điều hành chrome
fruit = 'grapes';
System.out.println('Remove ' +fruit+ ' from the list? ' + alist.remove(fruit));
# prints
Remove grapes from the list? true

Làm thế nào bạn đang sử dụng Lập danh sách trong các dự án của bạn và bạn đã phải đối mặt với những vấn đề đặc biệt nào? Vui lòng cho chúng tôi biết trong phần bình luận bên dưới.

Đăng lại Đăng lại tiếng riu ríu E-mail Cách truy cập Cấp bong bóng tích hợp của Google trên Android

Nếu bạn đã từng cần đảm bảo thứ gì đó ở mức vừa phải, thì giờ đây, bạn có thể có được mức bong bóng trên điện thoại của mình trong vài giây.

Đọc tiếp
Chủ đề liên quan
  • Lập trình
  • Java
Giới thiệu về tác giả Jay Sridhar(17 bài báo đã xuất bản) Xem thêm từ Jay Sridhar

Theo dõi bản tin của chúng tôi

Tham gia bản tin của chúng tôi để biết các mẹo công nghệ, đánh giá, sách điện tử miễn phí và các ưu đãi độc quyền!

Bấm vào đây để đăng ký