Làm cách nào để bạn đẩy thứ gì đó vào một mảng trong Java?
Trong hướng dẫn này, chúng ta sẽ xem xét ngắn gọn những điểm tương đồng và khác biệt trong việc cấp phát bộ nhớ giữa các mảng Java và ArrayList tiêu chuẩn. Hơn nữa, chúng ta sẽ xem cách nối và chèn các phần tử trong một mảng và ArrayList Show
2. Mảng Java và ArrayListMảng Java là một cấu trúc dữ liệu cơ bản được cung cấp bởi ngôn ngữ. Ngược lại, ArrayList là một triển khai của giao diện List được hỗ trợ bởi một mảng và được cung cấp trong Java Collections Framework 2. 1. Truy cập và sửa đổi các phần tửChúng ta có thể truy cập và sửa đổi các phần tử mảng bằng cách sử dụng ký hiệu dấu ngoặc vuông
Mặt khác, ArrayList có một tập hợp các phương thức để truy cập và sửa đổi các phần tử
2. 2. Kích thước cố định so với kích thước độngCả mảng và ArrayList đều phân bổ bộ nhớ heap theo cách tương tự, nhưng điểm khác biệt là mảng có kích thước cố định, trong khi kích thước của ArrayList tăng động Vì một mảng Java có kích thước cố định, chúng tôi cần cung cấp kích thước trong khi khởi tạo nó. Không thể tăng kích thước của mảng sau khi nó đã được khởi tạo. Thay vào đó, chúng ta cần tạo một mảng mới với kích thước đã điều chỉnh và sao chép tất cả các phần tử từ mảng trước đó ArrayList là một triển khai mảng có thể thay đổi kích thước của giao diện Danh sách - nghĩa là ArrayList phát triển linh hoạt khi các phần tử được thêm vào nó. Khi số phần tử hiện tại (bao gồm cả phần tử mới được thêm vào ArrayList) lớn hơn kích thước tối đa của mảng bên dưới, thì ArrayList sẽ tăng kích thước của mảng bên dưới Chiến lược tăng trưởng cho mảng bên dưới phụ thuộc vào việc triển khai ArrayList. Tuy nhiên, vì kích thước của mảng bên dưới không thể tăng lên một cách linh hoạt, nên một mảng mới được tạo và các phần tử mảng cũ được sao chép vào mảng mới Hoạt động thêm có chi phí thời gian khấu hao không đổi. Nói cách khác, việc thêm n phần tử vào ArrayList cần O(n) thời gian 2. 3. Các loại phần tửMột mảng có thể chứa các kiểu dữ liệu nguyên thủy cũng như không nguyên thủy, tùy thuộc vào định nghĩa của mảng. Tuy nhiên, một ArrayList chỉ có thể chứa các kiểu dữ liệu không nguyên thủy Khi chúng ta chèn các phần tử có kiểu dữ liệu nguyên thủy vào một ArrayList, trình biên dịch Java sẽ tự động chuyển đổi kiểu dữ liệu nguyên thủy thành lớp bao bọc đối tượng tương ứng của nó Bây giờ chúng ta hãy xem cách nối và chèn các phần tử trong mảng Java và ArrayList 3. Nối thêm một phần tửNhư chúng ta đã thấy, mảng có kích thước cố định Vì vậy, để nối thêm một phần tử, trước tiên, chúng ta cần khai báo một mảng mới lớn hơn mảng cũ và sao chép các phần tử từ mảng cũ sang mảng mới tạo. Sau đó, chúng ta có thể nối thêm phần tử mới vào mảng vừa tạo này Hãy xem cách triển khai nó trong Java mà không sử dụng bất kỳ lớp tiện ích nào
Ngoài ra, lớp Arrays cung cấp một phương thức tiện ích copyOf(), hỗ trợ tạo một mảng mới có kích thước lớn hơn và sao chép tất cả các phần tử từ mảng cũ
Khi chúng ta đã tạo một mảng mới, chúng ta có thể dễ dàng thêm phần tử mới vào mảng
Mặt khác, việc thêm một phần tử vào ArrayList khá dễ dàng
4. Chèn một phần tử vào chỉ mụcChèn thêm một phần tử vào một chỉ số cho trước mà không làm mất đi các phần tử đã thêm trước đó không phải là một công việc đơn giản trong mảng Trước hết, nếu mảng đã chứa số phần tử bằng với kích thước của nó, thì trước tiên chúng ta cần tạo một mảng mới có kích thước lớn hơn và sao chép các phần tử sang mảng mới Hơn nữa, chúng ta cần dịch chuyển tất cả các phần tử xuất hiện sau chỉ mục đã chỉ định sang phải một vị trí
Tuy nhiên, lớp ArrayUtils cung cấp cho chúng ta một giải pháp đơn giản hơn để chèn các phần tử vào một mảng
Chúng ta phải chỉ định chỉ mục mà chúng ta muốn chèn giá trị, mảng nguồn và giá trị để chèn Phương thức insert() trả về một mảng mới chứa số lượng phần tử lớn hơn, với phần tử mới ở chỉ mục đã chỉ định và tất cả các phần tử còn lại dịch chuyển một vị trí sang phải Lưu ý rằng đối số cuối cùng của phương thức insert() là một đối số biến, vì vậy chúng ta có thể chèn bất kỳ số lượng phần tử nào vào một mảng Hãy sử dụng nó để chèn ba phần tử trong srcArray bắt đầu từ chỉ mục hai ________số 8Và các phần tử còn lại sẽ được dịch chuyển ba vị trí sang phải Hơn nữa, điều này có thể đạt được một cách tầm thường đối với ArrayList
ArrayList dịch chuyển các phần tử và chèn phần tử vào vị trí cần thiết 5. Phần kết luậnTrong bài viết này, chúng ta đã xem xét mảng Java và ArrayList. Hơn nữa, chúng tôi đã xem xét những điểm tương đồng và khác biệt giữa hai. Cuối cùng, chúng ta đã thấy cách nối và chèn các phần tử trong một mảng và ArrayList Làm cách nào để đẩy vào mảng Java?Trong Java, push là một phương thức bổ sung các phần tử trong ngăn xếp, mảng, LinkedList, v.v. Một phần tử có thể được thêm vào ngăn xếp bằng phương thức Java. sử dụng. . Chương trình Java để đẩy các phần tử kiểu chuỗi vào ngăn xếp. . Chương trình Java đẩy phần tử kiểu số nguyên trong LinkedList Làm cách nào để đẩy và bật trong mảng trong Java?Triển khai ngăn xếp Java bằng mảng . đẩy(). Trong đó một mục dữ liệu được đặt tại vị trí được chỉ bởi con trỏ ngăn xếp nhạc pop(). Trong đó một mục dữ liệu được loại bỏ và trả về từ vị trí được chỉ bởi con trỏ ngăn xếp Bạn có thể thêm vào một mảng trong Java không?Mảng Java có kích thước cố định. Bạn không thể nối các phần tử trong một mảng . Thay vào đó, chúng ta có thể sử dụng một đối tượng ArrayList để triển khai giao diện Danh sách. |