Java ArrayList trong bộ sưu tập Java với thêm, ví dụ về tập hợp chung so với không chung chung, addAll, remove, removeAll, chứa, chứa, chứaAll, giữ lạiAll, phương thức rõ ràng và trình lặp, tập hợp chung và không chung chung.
Bạn đang xem : danh sách mảng của java danh sách mảng
Java ArrayList
Lớp ArrayList trong Java sử dụng mảng động để lưu trữ các phần tử. Nó giống như một mảng, nhưng không có giới hạn về kích thước. Chúng tôi có thể thêm hoặc bớt các phần tử bất cứ lúc nào. Vì vậy, nó linh hoạt hơn nhiều so với mảng truyền thống. Nó được tìm thấy trong gói java.util. Nó giống như Vector trong C ++.
ArrayList trong Java cũng có thể có các phần tử trùng lặp. Nó thực hiện giao diện Danh sách để chúng ta có thể sử dụng tất cả các phương pháp của giao diện Danh sách ở đây. ArrayList duy trì thứ tự chèn bên trong.
Nó kế thừa lớp AbstractList và triển khai giao diện Danh sách .
Những điểm quan trọng về lớp Java ArrayList là:
- Lớp Java ArrayList có thể chứa các phần tử trùng lặp.
- Lớp Java ArrayList duy trì thứ tự chèn.
- Lớp Java ArrayList không được đồng bộ hóa .
- Java ArrayList cho phép truy cập ngẫu nhiên vì mảng hoạt động trên cơ sở chỉ mục.
- Trong ArrayList, thao tác chậm hơn một chút so với LinkedList trong Java vì cần phải dịch chuyển nhiều lần nếu bất kỳ phần tử nào bị xóa khỏi danh sách mảng.
- Chúng tôi không thể tạo một danh sách mảng của các kiểu nguyên thủy, chẳng hạn như int, float, char, v.v. Bắt buộc phải sử dụng lớp trình bao bọc bắt buộc trong những trường hợp như vậy. Ví dụ:
- Java ArrayList được khởi tạo theo kích thước. Kích thước là động trong danh sách mảng, thay đổi tùy theo các phần tử được thêm vào hoặc xóa khỏi danh sách.
Thứ bậc của lớp ArrayList
Như được hiển thị trong sơ đồ trên, lớp Java ArrayList mở rộng lớp AbstractList để triển khai giao diện Danh sách. Giao diện Danh sách mở rộng Bộ sưu tập và các giao diện Có thể lặp lại theo thứ tự phân cấp.
Khai báo lớp ArrayList
Hãy xem phần khai báo cho lớp java.util.ArrayList.
Các hàm tạo của ArrayList
Người xây dựng
Sự mô tả
Lập danh sách()
Nó được sử dụng để xây dựng một danh sách mảng trống.
ArrayList (Bộ sưu tập & lt ;? mở rộng E & gt; c)
Nó được sử dụng để xây dựng một danh sách mảng được khởi tạo với các phần tử của tập hợp c.
ArrayList (int dung lượng)
Nó được sử dụng để xây dựng một danh sách mảng có dung lượng ban đầu được chỉ định.
Các phương thức của ArrayList
Phương pháp
Sự mô tả
void add (int index, E element)
Nó được sử dụng để chèn phần tử được chỉ định vào vị trí được chỉ định trong danh sách.
boolean thêm (E e)
Nó được sử dụng để nối phần tử được chỉ định vào cuối danh sách.
boolean addAll (Bộ sưu tập & lt ;? mở rộng E & gt; c)
Nó được sử dụng để nối tất cả các phần tử trong tập hợp được chỉ định vào cuối danh sách này, theo thứ tự chúng được trả về bởi trình lặp của tập hợp đã chỉ định.
boolean addAll (int index, Collection & lt ;? expand E & gt; c)
Nó được sử dụng để nối tất cả các phần tử trong tập hợp được chỉ định, bắt đầu từ vị trí đã chỉ định của danh sách.
void clear ()
Nó được sử dụng để xóa tất cả các phần tử khỏi danh sách này.
void ensureCapacity (int requiredCapacity)
Nó được sử dụng để nâng cao năng lực của một cá thể ArrayList.
E get (int index)
Nó được sử dụng để tìm nạp phần tử từ vị trí cụ thể của danh sách.
boolean isEmpty ()
Nó trả về true nếu danh sách trống, ngược lại là false.
Iterator ()
listIterator ()
int lastIndexOf (Đối tượng o)
Nó được sử dụng để trả về chỉ mục trong danh sách này về lần xuất hiện cuối cùng của phần tử được chỉ định hoặc -1 nếu danh sách không chứa phần tử này.
Đối tượng [] toArray ()
Nó được sử dụng để trả về một mảng chứa tất cả các phần tử trong danh sách này theo đúng thứ tự.
& lt; T & gt; T [] toArray (T [] a)
Nó được sử dụng để trả về một mảng chứa tất cả các phần tử trong danh sách này theo đúng thứ tự.
Bản sao đối tượng ()
Nó được sử dụng để trả về một bản sao cạn của ArrayList.
boolean chứa (Đối tượng o)
Nó trả về true nếu danh sách chứa phần tử được chỉ định.
int indexOf (Đối tượng o)
Nó được sử dụng để trả về chỉ mục trong danh sách này về lần xuất hiện đầu tiên của phần tử được chỉ định hoặc -1 nếu Danh sách không chứa phần tử này.
E remove (int index)
Nó được sử dụng để loại bỏ phần tử hiện diện ở vị trí được chỉ định trong danh sách.
boolean loại bỏ (Đối tượng o)
Nó được sử dụng để loại bỏ sự xuất hiện đầu tiên của phần tử được chỉ định.
boolean removeAll (Bộ sưu tập & lt;? & gt; c)
Nó được sử dụng để xóa tất cả các phần tử khỏi danh sách.
boolean removeIf (Predicate & lt ;? super E & gt; filter)
Nó được sử dụng để loại bỏ tất cả các phần tử khỏi danh sách thỏa mãn vị từ đã cho.
void được bảo vệ removeRange (int fromIndex, int toIndex)
Nó được sử dụng để loại bỏ tất cả các phần tử nằm trong phạm vi đã cho.
void ReplaceAll (Toán tử UnaryOperator & lt; E & gt;)
Nó được sử dụng để thay thế tất cả các phần tử từ danh sách bằng phần tử được chỉ định.
void keepAll (Bộ sưu tập & lt;? & gt; c)
Nó được sử dụng để giữ lại tất cả các phần tử trong danh sách có trong bộ sưu tập được chỉ định.
Tập hợp E (chỉ mục int, phần tử E)
Nó được sử dụng để thay thế phần tử được chỉ định trong danh sách, hiện diện ở vị trí được chỉ định.
void sắp xếp (Bộ so sánh & lt ;? super E & gt; c)
Nó được sử dụng để sắp xếp các phần tử của danh sách trên cơ sở bộ so sánh được chỉ định.
Spliterator & lt; E & gt; spliterator ()
Nó được sử dụng để tạo một spliterator trên các phần tử trong danh sách.
Danh sách & lt; E & gt; subList (int fromIndex, int toIndex)
Nó được sử dụng để tìm nạp tất cả các phần tử nằm trong phạm vi đã cho.
int size ()
Nó được sử dụng để trả về số phần tử có trong danh sách.
void trimToSize ()
Nó được sử dụng để giảm dung lượng của cá thể ArrayList này thành kích thước hiện tại của danh sách.
Java Vs. Bộ sưu tập chung
Khung thu thập Java không chung chung trước JDK 1.5. Kể từ 1.5, nó là chung chung.
Bộ sưu tập chung mới của Java cho phép bạn chỉ có một loại đối tượng trong một bộ sưu tập. Giờ đây, nó là kiểu chữ an toàn, vì vậy không cần đánh máy trong thời gian chạy.
Hãy xem ví dụ cũ không chung chung về việc tạo một bộ sưu tập Java.
Hãy xem ví dụ chung mới về việc tạo bộ sưu tập java.
Trong một tập hợp chung, chúng tôi chỉ định loại trong dấu ngoặc nhọn. Bây giờ ArrayList buộc phải có kiểu đối tượng được chỉ định duy nhất trong đó. Nếu bạn cố gắng thêm một loại đối tượng khác, nó sẽ gây ra lỗi thời gian biên dịch.
Để biết thêm thông tin về Java Generics, hãy nhấp vào đây Hướng dẫn về Java Generics .
Ví dụ về Java ArrayList
Tên tệp: ArrayListExample1.java
Đầu ra:
[Xoài, Táo, Chuối, Nho]
Lặp lại ArrayList bằng Lặp lại
Hãy xem một ví dụ để duyệt qua các phần tử ArrayList bằng giao diện Iterator.
Tên tệp: ArrayListExample2.java
Đầu ra:
Mango Quả táo Trái chuối Quả nho
Lặp lại danh sách mảng bằng vòng lặp For-each
Hãy xem một ví dụ để xem qua các phần tử ArrayList bằng cách sử dụng vòng lặp for-each
Tên tệp: ArrayListExample3.java
Đầu ra:
Mango Quả táo Trái chuối Quả nho
Lấy và đặt ArrayList
Phương thức get () trả về phần tử tại chỉ mục được chỉ định, trong khi phương thức set () thay đổi phần tử.
Tên tệp: ArrayListExample4.java
Đầu ra:
Phần tử trả về: Apple Xoài ngày Trái chuối Quả nho
Cách sắp xếp danh sách mảng
Gói java.util cung cấp một lớp tiện ích Collections , có phương thức tĩnh sort (). Sử dụng phương thức Collections.sort () , chúng tôi có thể dễ dàng sắp xếp ArrayList.
Tên tệp: SortArrayList.java
Đầu ra:
Apple Trái chuối Quả nho Xoài Sắp xếp số ... 1 11 21 51
Các cách để lặp lại các phần tử của tập hợp trong Java
Có nhiều cách khác nhau để xem qua các phần tử của bộ sưu tập:
- Bằng giao diện Iterator.
- Theo từng vòng lặp.
- Bằng giao diện ListIterator.
- Bằng vòng lặp for.
- Bằng phương thức forEach ().
- Bằng phương thức forEachRemaining ().
Lặp lại Bộ sưu tập theo các cách còn lại
Hãy xem một ví dụ để xem qua các phần tử ArrayList thông qua các cách khác
Tên tệp: ArrayList4.java
Đầu ra:
Duyệt qua danh sách thông qua Trình lặp lại danh sách: Ajay Ravi Vijay Ravi Duyệt qua danh sách qua vòng lặp for: Ravi Vijay Ravi Ajay Duyệt danh sách thông qua phương thức forEach (): Ravi Vijay Ravi Ajay Duyệt danh sách thông qua phương thức forEachRemaining (): Ravi Vijay Ravi Ajay
Đối tượng lớp do người dùng định nghĩa trong Java ArrayList
Hãy xem một ví dụ mà chúng ta đang lưu trữ đối tượng lớp Sinh viên trong một danh sách mảng.
Tên tệp: ArrayList5.java
Đầu ra:
101 Sonoo 23 102 Ravi 21 103 Hanumat 25
Java ArrayList Serialization and Deserialization Ví dụ
Hãy xem một ví dụ để tuần tự hóa một đối tượng ArrayList và sau đó giải mã hóa nó.
Tên tệp: ArrayList6.java
Đầu ra:
[Ravi, Vijay, Ajay]
Ví dụ về Java ArrayList để thêm các phần tử
Tại đây, chúng tôi thấy các cách khác nhau để thêm một phần tử.
Tên tệp: ArrayList7.java
Đầu ra:
Danh sách các phần tử ban đầu: [] Sau khi gọi phương thức add (E e): [Ravi, Vijay, Ajay] Sau khi gọi phương thức add (int index, E element): [Ravi, Gaurav, Vijay, Ajay] Sau khi gọi phương thức addAll (Collection & lt ;? expand E & gt; c): [Ravi, Gaurav, Vijay, Ajay, Sonoo, Hanumat] Sau khi gọi phương thức addAll (int index, Collection & lt ;? expand E & gt; c): [Ravi, John, Rahul, Gaurav, Vijay, Ajay, Sonoo, Hanumat]
Ví dụ về Java ArrayList để loại bỏ các phần tử
Tại đây, chúng tôi thấy các cách khác nhau để xóa một phần tử.
Tên tệp: ArrayList8.java
Đầu ra:
Danh sách các phần tử ban đầu: [Ravi, Vijay, Ajay, Anuj, Gaurav] Sau khi gọi phương thức remove (object): [Ravi, Ajay, Anuj, Gaurav] Sau khi gọi phương thức remove (index): [Ajay, Anuj, Gaurav] Danh sách cập nhật: [Ajay, Anuj, Gaurav, Ravi, Hanumat] Sau khi gọi phương thức removeAll (): [Ajay, Anuj, Gaurav] Sau khi gọi phương thức removeIf (): [Anuj, Gaurav] Sau khi gọi phương thức clear (): []
Ví dụ về Java ArrayList của phương thức keepAll ()
Tên tệp: ArrayList9.java
Đầu ra:
lặp lại các phần tử sau khi giữ lại các phần tử của al2 Ravi
Ví dụ về Java ArrayList của phương thức isEmpty ()
Tên tệp: ArrayList4.java
Đầu ra:
ArrayList Empty: true Sau khi chèn ArrayList Empty: false
Java ArrayList Ví dụ: Sách
Hãy xem ví dụ về ArrayList trong đó chúng tôi đang thêm sách vào danh sách và in tất cả sách.
Tên tệp: ArrayListExample20.java
Đầu ra:
101 Hãy để chúng tôi C Yashwant Kanetkar BPB 8 102 Truyền thông Dữ liệu và Mạng Forouzan Mc Graw Hill 4 103 Hệ điều hành Galvin Wiley 6
Kích thước và Dung lượng của ArrayList
Kích thước và dung lượng của danh sách mảng là hai thuật ngữ mà người mới bắt đầu cảm thấy khó hiểu. Hãy hiểu nó trong phần này với sự trợ giúp của một số ví dụ. Hãy xem xét đoạn mã sau.
Tên tệp: SizeCapacity.java
Đầu ra:
Kích thước của mảng là: 0
Giải thích: Kết quả đầu ra có ý nghĩa vì chúng ta chưa làm gì với danh sách mảng. Bây giờ hãy quan sát chương trình sau.
Tên tệp: SizeCapacity1.java
Đầu ra:
Kích thước của mảng là: 0
Giải thích: Chúng tôi thấy rằng kích thước vẫn là 0 và lý do đằng sau điều này là số 10 đại diện cho khả năng không có kích thước. Trên thực tế, kích thước đại diện cho tổng số phần tử có trong mảng. Do chúng tôi chưa thêm bất kỳ phần tử nào nên kích thước của danh sách mảng bằng 0 trong cả hai chương trình.
Dung lượng biểu thị tổng số phần tử mà danh sách mảng có thể chứa. Do đó, dung lượng của danh sách mảng luôn lớn hơn hoặc bằng dung lượng của danh sách mảng. Khi chúng ta thêm một phần tử vào danh sách mảng, nó sẽ kiểm tra xem kích thước của danh sách mảng có bằng với dung lượng hay không. Nếu có, thì dung lượng của danh sách mảng tăng lên. Vì vậy, trong ví dụ trên, dung lượng sẽ là 10 cho đến khi 10 phần tử được thêm vào danh sách. Khi chúng ta thêm phần tử thứ 11, công suất sẽ tăng lên. Lưu ý rằng trong cả hai ví dụ, dung lượng của danh sách mảng là 10. Trong trường hợp đầu tiên, dung lượng là 10 vì dung lượng mặc định của danh sách mảng là 10. Trong trường hợp thứ hai, chúng tôi đã đề cập rõ ràng rằng dung lượng của mảng danh sách là 10.
Lưu ý: Không có bất kỳ phương thức chuẩn nào để cho biết dung lượng tăng lên như thế nào trong danh sách mảng. Trên thực tế, cách tăng dung lượng khác nhau giữa các phiên bản GDK này sang phiên bản khác. Do đó, cần phải kiểm tra cách thực hiện mã tăng dung lượng trong GDK. Không có bất kỳ phương thức nào được xác định trước trong lớp ArrayList trả về dung lượng của danh sách mảng. Do đó, để hiểu rõ hơn, hãy sử dụng phương thức dung lượng () của lớp Vector. Logic của kích thước và dung lượng là như nhau trong lớp ArrayList và lớp Vector.
Chủ đề có liên quan
Cách sắp xếp ArrayList trong Java
Sự khác biệt giữa Array và ArrayList
Khi nào sử dụng ArrayList và LinkedList trong Java
Sự khác biệt giữa ArrayList và LinkedList
Sự khác biệt giữa ArrayList và Vector
Cách so sánh hai ArrayList trong Java
Cách đảo ngược ArrayList trong Java
Khi nào sử dụng ArrayList và LinkedList trong Java
Cách đặt ArrayList Chỉ đọc
Sự khác biệt giữa độ dài của mảng và kích thước () của ArrayList trong Java
Cách đồng bộ hóa ArrayList trong Java
Cách chuyển đổi ArrayList thành Array và Array thành ArrayList trong java
Array so với ArrayList trong Java
Cách sắp xếp danh sách Java ArrayList theo thứ tự giảm dần
Cách xóa các bản sao khỏi ArrayList trong Java
Chủ đề tiếp theo
Java LinkedList
Xem thêm những thông tin liên quan đến chủ đề mảng danh sách mảng java
Array vs. ArrayList in Java Tutorial – What’s The Difference?
- Tác giả: Coding with John
- Ngày đăng: 2021-02-23
- Đánh giá: 4 ⭐ ( 3014 lượt đánh giá )
- Khớp với kết quả tìm kiếm: Arrays vs. ArrayLists – What’s the difference? How do you use each of them, and which one should you use and why?
We’ll go in-depth about the similarities and differences between Array and ArrayList in Java, and talk about how to create them, add elements, remove elements, and more.
This is a beginner friendly beginner’s Java coding lesson tutorial, where we’ll talk all about using Arrays and ArrayLists.
Learn or improve your Java by watching it being coded live!
Hey, I’m John! I’m a Lead Java Software Engineer who has been in the industry for over a decade. I love sharing what I’ve learned over the years in a way that’s understandable.
Let me know what else you’d like to see!
Links to any stuff in this description are affiliate links, so if you buy a product through those links I may earn a small commission.
📕 THE best book to learn Java, Effective Java by Joshua Bloch
https://amzn.to/36AfdUu📕 One of my favorite programming books, Clean Code by Robert Martin
https://amzn.to/3GTPVhf🎧 Or get the audio version of Clean Code for FREE here with an Audible free trial
http://www.audibletrial.com/johncleancode🖥️Standing desk brand I use for recording (get a code for $30 off through this link!)
https://bit.ly/3QPNGko📹Phone I use for recording:
https://amzn.to/3HepYJu🎙️Microphone I use (classy, I know):
https://amzn.to/3AYGdbzDonate with PayPal (Thank you so much!)
https://www.paypal.com/donate/?hosted_button_id=3VWCJJRHP4WL2☕Complete Java course:
https://codingwithjohn.thinkific.com/courses/java-for-beginnershttps://codingwithjohn.com
Full source code available here: https://codingwithjohn.com/array-vs-arraylist-source
Bài tập về mảng trong java
- Tác giả: nguyenvanhieu.vn
- Đánh giá: 4 ⭐ ( 6136 lượt đánh giá )
- Khớp với kết quả tìm kiếm: Bài viết này mình sẽ hướng dẫn các bạn làm một số bài tập về mảng trong java, giúp các bạn sử dụng mảng một cách linh hoạt hơn.
Mảng (Array) trong Java
- Tác giả: quachquynh.com
- Đánh giá: 5 ⭐ ( 3446 lượt đánh giá )
- Khớp với kết quả tìm kiếm:
Khai báo mảng trong java
- Tác giả: viettuts.vn
- Đánh giá: 4 ⭐ ( 8205 lượt đánh giá )
- Khớp với kết quả tìm kiếm: Mảng trong java là một đối tượng chứa các phần tử có kiểu dữ liệu giống nhau. Vậy thì làm thế nào để khai báo mảng trong java? mảng một chiều và hai chiều?
Mảng (Array), cách sử dụng mảng trong java
- Tác giả: thaynhuom.edu.vn
- Đánh giá: 4 ⭐ ( 7559 lượt đánh giá )
- Khớp với kết quả tìm kiếm: Một trong những giải thuật liên quan đến dãy số, sắp xếp, lưu trữ danh sách,… thì không thể không nhắc đến mảng . . .
Mảng hoặc Danh sách trong Java. Cái nào nhanh hơn?
- Tác giả: qastack.vn
- Đánh giá: 3 ⭐ ( 2630 lượt đánh giá )
- Khớp với kết quả tìm kiếm: [Tìm thấy giải pháp!] Tôi đề nghị bạn nên sử dụng một hồ sơ để kiểm tra cái nào nhanh…
Danh sách mảng
- Tác giả: hocjava.com
- Đánh giá: 4 ⭐ ( 4297 lượt đánh giá )
- Khớp với kết quả tìm kiếm:
Xem thêm các bài viết khác thuộc chuyên mục: Kiến thức lập trình