ArrayList trong Java – mảng danh sách mảng java

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

Hệ thống phân cấp lớp 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ự.

Xem Thêm  Kế thừa lớp Python: Hướng dẫn về mã có thể sử dụng lại - cách tạo một lớp kế thừa từ một python khác

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:

  1. Bằng giao diện Iterator.
  2. Theo từng vòng lặp.
  3. Bằng giao diện ListIterator.
  4. Bằng vòng lặp for.
  5. Bằng phương thức forEach ().
  6. Bằng phương thức forEachRemaining ().
Xem Thêm  Đối tượng JSON thành chuỗi - đối tượng json thành chuỗi

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.

Xem Thêm  Python Slicing in Depth - làm thế nào để cắt lát trong trăn

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?

alt

  • 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/3AYGdbz

    Donate 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-beginners

    https://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