Cách dùng arraylist trong java

     

Trong bài này, tôi sẽ khuyên bảo đến chúng ta tìm hiểu các loại Class Collection tiếp theo sau - sẽ là ArrayListtrong Java. Ngôn từ của bài này sẽ mô tả đặc điểm, những phương thức hay được dùng của Collection này. Với mỗi cách thức được liệt kê, tôi sẽ giới thiệu ví dụ dễ dàng và đơn giản để cho các bạn nắm bắt được. Cuối bài bác này tôi sẽ chuyển ra một trong những bài tập cho các bạn luyện tập!

*


*

1. Đặc điểm

ArrayList là một lớp xúc tiến của list Interface vào Collections Framework đề nghị nó sẽ có được một vài đặc điểm và phương thức tương đương với List. Như vẫn nói vào bàiTổng quan về Collection vào Java,ArrayList là 1 trong những Collection kiểu list sử dụng cấu trúc mảng để lưu trữ phần tử.Thứ từ các bộ phận dựa theo thiết bị tự lúc cung ứng và giá trị của các bộ phận này hoàn toàn có thể trùng nhau.

Bạn đang xem: Cách dùng arraylist trong java

Như vậy, cả ArrayList với LinkedList những là lớp thực hiện của menu Interface. Vậy bao giờ chúng ta sẽ áp dụng ArrayList và bao giờ chúng ta sẽ thực hiện LinkedList? bọn họ sẽ áp dụng ArrayList khi vận dụng của chúng ta cần truy vấn xuất phần tử nhiều hơn cập nhật và xóa phần tử và bọn họ sẽ áp dụng LinkedList khi vận dụng của chúng ta cần cập nhật và xóa bộ phận nhiều rộng là truy vấn phần tử.

2. Các phương thức phổ biến

Tạo new một ArrayList

Để khai báo một ArrayList,chúng ta rất cần được import gói thư việnjava.util.ArrayList của Java. Cú pháp import như sau:

Bài viết này được đăng trên


// Khai báo ArrayList// thì import gói tủ sách java.util.ArrayListimport java.util.ArrayList;public class TênClass // ...
public static void main(String<> args) // khai báo 1 ArrayList mang tên là arrListString// gồm kiểu là StringArrayList arrListString = new ArrayList();

Ngoài ra, nếu họ đã biết trước số lượng thành phần thì bạn cũng có thể khai báo kèm cùng với số lượng bộ phận của nó. Ví dụ tiếp sau đây sẽ khai báo một ArrayList có tên là arrListName,kiểu là String và tất cả 10phần tử:


public static void main(String<> args) // khai báo 1 ArrayList có tên là arrListName// bao gồm kiểu là String và gồm 10 phần tửArrayList arrListName = new ArrayList(10);

Hiển thị các bộ phận có trong ArrayList

Để hiển thị các bộ phận có trong ArrayList, chúng ta có những cáchnhư sau:

Hiển thị theo tên của ArrayList.


public static void main(String<> args) // khai báo 1 ArrayList mang tên là arrListDouble// có kiểu là Double và bao gồm 10 phần tửArrayList arrListDouble = new ArrayList(10);arrListDouble.add(8.329d);arrListDouble.add(1.02d);arrListDouble.add(2.9d);arrListDouble.add(20.17d);System.out.println("Các phần tử có trong arrListDouble là: ");System.out.println(arrListDouble);

Kết quả sau khoản thời gian biên dịch chương trình:

Sử dụng vòng lặpforthông thường.


public static void main(String<> args) {// khai báo 1 ArrayList có tên là arrListString// có kiểu là StringArrayList arrListString = new ArrayList();// thêm các bộ phận sử dụng cách làm add()arrListString.add("JAVA");arrListString.add("PHP");arrListString.add("C#");arrListString.add("C++");// thông qua theo form size của arrListString// thực hiện vòng lặp for thông thường// cách làm arrListString.size() vẫn trả về số thành phần của arrListString// và sau đó lấy thành phần tại vị trí thứ i trải qua hàm get()// tiếp nối hiển thị giá chỉ trị bộ phận đó raSystem.out.println("Các thành phần có trong arrListString là: ");for (int i = 0; i

Kết quả sau khi biên dịch chương trình:

Sử dụng vòng lặpforcải tiếnduyệt theo đối tượng người dùng trong ArrayList.


public static void main(String<> args) // khai báo 1 ArrayList mang tên là arrListString// bao gồm kiểu là StringArrayList arrListInteger = new ArrayList();// thêm các thành phần sử dụng phương thức add()arrListInteger.add(0);arrListInteger.add(7);arrListInteger.add(1);arrListInteger.add(9);// chăm chú theo kích thước của arrListInteger// sử dụng vòng lặp for chăm nom theo đối tượng// trong đó kiểu dữ liệu của vươn lên là number// nên trùng cùng với kiểu dữ liệu của arrListIntegerSystem.out.println("Các thành phần có trong arrListInteger là: ");for (int number : arrListInteger) System.out.print(number + " ");

Kết quả sau khoản thời gian biên dịch chương trình:

Sử dụng Iterator.

Để thực hiện đượcIteratorchúng ta rất cần phải import gói thư việnjava.util.Iteratorcủa Java


public static void main(String<> args) // khai báo 1 ArrayList mang tên là arrListString// có kiểu là StringArrayList arrListFloat = new ArrayList();// thêm các thành phần sử dụng thủ tục add()// chữ f cho biết thêm các số tiếp tế là số thực// nếu không có chữ này thì trình biên dịch sẽ hiểu đây là số double// cùng sẽ báo lỗi dữ liệuarrListFloat.add(0.7f);arrListFloat.add(7.26f);arrListFloat.add(1.02f);arrListFloat.add(9.3f);// khai báo một Iterator có kiểu là FloatIterator iterator = arrListFloat.iterator();System.out.println("Các bộ phận có trong arrListFloat là: ");while (iterator.hasNext()) System.out.print(iterator.next() + " ");

Kết quả sau thời điểm biên dịch chương trình:

Sử dụng ListIterator.

VìArrayList là 1 trong những lớp triển khai của các mục Interface nên nó cũng rất có thể sử dụng ListIterator để duyệt qua các thành phần của nó. Để sử dụng được ListIterator bọn họ cần đề xuất import gói thư việnjava.util.ListIterator của Java.


public static void main(String<> args) // khai báo 1 ArrayList có tên là arrListChar// gồm kiểu là CharacterArrayList arrListChar = new ArrayList();arrListChar.add("a");arrListChar.add("e");arrListChar.add("b");arrListChar.add("c");// khai báo một ListIterator bao gồm kiểu là CharacterListIterator listIterator = arrListChar.listIterator();// hiển thị các bộ phận có vào linkedList// bằng phương pháp sử dụng ListIteratorSystem.out.println("Các bộ phận có trong arrListChar là: ");while (listIterator.hasNext()) System.out.print(listIterator.next() + " ");

Kết quả sau thời điểm biên dịch chương trình:

Thêm thành phần vào vào ArrayList

Thêm bộ phận sử dụng cách làm add().


public static void main(String<> args) ArrayList arrListMonth = new ArrayList(12);// thêm bộ phận vào trong ArrayList// áp dụng phương thức add()arrListMonth.add("January");arrListMonth.add("February");arrListMonth.add("March");arrListMonth.add("May");arrListMonth.add("June");arrListMonth.add("July");arrListMonth.add("August");arrListMonth.add("September");arrListMonth.add("October");arrListMonth.add("November");arrListMonth.add("December");// phân phối trong ArrayList // bộ phận ở địa chỉ thứ 3 và có mức giá trị là "April"arrListMonth.add(3, "April");System.out.println("Các phần tử có trong arrListMonth là: ");for (String month : arrListMonth) System.out.println(month);

Kết quả sau thời điểm biên dịch chương trình:

Bên cạnh đó, bạn có thể sử dụng phương thứcaddAll()để thêm tất cả các phần tử của một ArrayList khác vào 1 vị trí ngẫu nhiên trong ArrayList sẽ tồn tại. Ví dụ tiếp sau đây sẽ thêm các bộ phận của arrList1vào địa chỉ số 3trong arrList2:


public static void main(String<> args) ArrayList arrList1 = new ArrayList();// thêm thành phần vào trong arrList1arrList1.add(6);arrList1.add(4);arrList1.add(9);ArrayList arrList2 = new ArrayList();// thêm thành phần vào vào arrList2arrList2.add(11);arrList2.add(15);arrList2.add(16);arrList2.add(19);// thêm các bộ phận của arrList1// vào địa chỉ số 3 của arrList2arrList2.addAll(3, arrList1);System.out.println("Các thành phần có trong arrList2 là: ");for (int number : arrList2) System.out.println(number);

Kết quả sau khi biên dịch chương trình:

Truy cập phần tử

Java cung cấp cho chúng ta phương thứcget()để truy cập đến một phần tử ngẫu nhiên trong ArrayList thông qua chỉ số của bộ phận đó. Ví dụ sau đây sẽ truy hỏi cậpphần tử có chỉ số là2trong 1 ArrayList mang tên là arrListChar:


public static void main(String<> args) ArrayList arrListChar = new ArrayList();// thêm bộ phận vào trong arrListChararrListChar.add("l");arrListChar.add("a");arrListChar.add("b");// tróc nã cập bộ phận có chỉ số 2 trong arrListChar// khớp ứng với ký kết tự "b"https:// vì chưng arrListChar có kiểu là Character// cần các bộ phận con của nó cũng có kiểu dữ liệu là Character.char ch = arrListChar.get(2);System.out.print("Phần tử tất cả chỉ số 2 vào arrListChar là " + ch);

Kết quả sau thời điểm biên dịch chương trình:

Cập nhậtgiá trị của phần tử

Để update giá trị của phần tử trong ArrayList, Java hỗ trợ cho họ phương thứcset(index, element), trong đóindexlà chỉ số của thành phần cần cập nhật vàelementlà phần tử mới đểthay thế. Để hiểu kỹ hơn về cách thức này các bạn hãy xem lấy ví dụ như sau:


public static void main(String<> args) ArrayList arrListInteger = new ArrayList();// thêm phần tử vào trong arrListIntegerarrListInteger.add(4);arrListInteger.add(8);arrListInteger.add(12);arrListInteger.add(16);arrListInteger.add(20);arrListInteger.add(24);System.out.println("Các thành phần của arrListInteger ban đầu: ");System.out.println(arrListInteger);// cập nhật giá trị của thành phần thứ 4// trong arrListInteger bởi phương thức set()arrListInteger.set(4, 204);System.out.println("Các phần tử của arrListInteger sau thời điểm cập nhật: ");System.out.println(arrListInteger);

Các chúng ta thấy trong lấy ví dụ như trên, tôi sẽ tiến hành sửa chữa thay thế giá trị của phần tử có chỉ số là4trong danh sách. Công dụng là lịch trình sẽ thay thế sửa chữa giá trị20 của thành phần này thành 204. Hiệu quả sau lúc biên dịch lịch trình như sau:

Xóa phần tử

Để xóa bộ phận trong ArrayList, Java hỗ trợ cho chúng ta 2 phương thức tất cả sẵn đó là phương thức clear() và phương thức remove().

Xem thêm: Đài Loan Thành Nhất Trong 4 Con Rồng Của Châu Á, Bốn Con Hổ Châu Á

Phương thức clear().

Phương thức clear() đã xóa tất cả các thành phần có trong ArrayList. Sau đó là ví dụ minh họa cách thức này.


public static void main(String<> args) ArrayList arrListInteger = new ArrayList();// thêm phần tử vào trong arrListIntegerarrListInteger.add(1);arrListInteger.add(2);arrListInteger.add(3);// hiển thị số bộ phận của arrListInteger ban đầu// áp dụng phương thức size()System.out.print("Số bộ phận của arrListInteger thuở đầu = " + arrListInteger.size());System.out.println(" Các bộ phận của arrListInteger ban đầu: ");System.out.println(arrListInteger);// xóa toàn bộ các phần tử trong arrListInteger// sử dụng phương thức clear()arrListInteger.clear();System.out.print("Số phần tử của arrListInteger sau khi xóa = " + arrListInteger.size());System.out.println(" Các phần tử của arrListInteger sau khi xóa: ");System.out.println(arrListInteger);

Kết quả sau khi biên dịch chương trình:

Phương thức remove().

Phương thức remove() sẽ xóa thành phần ra ngoài ArrayList theo 2 cách đây làxóa dựa vàochỉ số của phần tửxóa trực tiếp phần tử đó(không nên biết đến chỉ số của nó). Ví dụ tiếp sau đây sẽ minh họa 2 giải pháp xóa này:


public static void main(String<> args) ArrayList arrListString = new ArrayList();arrListString.add("ANDROID");arrListString.add("JAVA");arrListString.add("PHP");// tạo bạn dạng sao của arrListString// sử dụng phương thức clone()ArrayList arrListStringCopy = (ArrayList) arrListString.clone();System.out.println("Các bộ phận của arrListString ban đầu: ");System.out.println(arrListString);// xóa thành phần có chỉ số = 2 trong arrListString// sử dụng phương thức remove()// trong số đó giá trị truyền vào là chỉ số của bộ phận cần xóaarrListString.remove(2);System.out.println("Các thành phần của arrListStringCopy sau khoản thời gian xóa phần tử số 2: ");System.out.println(arrListString);System.out.println("Các bộ phận của arrListStringCopy ban đầu: ");System.out.println(arrListStringCopy);// xóa phần tử "JAVA" thoát khỏi arrListStringCopy// thực hiện phương thức remove()// trong các số đó giá trị truyền vào là quý giá của thành phần cần xóaarrListStringCopy.remove("JAVA");System.out.println("Các bộ phận của arrListStringCopy sau khoản thời gian xóa bộ phận PHP: ");System.out.println(arrListStringCopy);

Kết quả sau thời điểm biên dịch chương trình:

Tìm kiếm một trong những phần tử

Để tìm kiếm kiếm một phần tử vào ArrayList thì họ có 3 phương pháp tìm kiếm như sau:

Tìm tìm trực tiếp phần tử.

Để search kiếm thẳng phần tử, họ sẽ sử dụng phương thứccontains(). Hiệu quả trả về làtruenếu search thấy, trái lại trả vềfalse.


Ví dụ sau đây sẽ search kiếm bộ phận có cực hiếm = 2trong ArrayList arrListInteger. Ví như tìm thấy thì thông tin "Có thành phần 2 trong arrListInteger.", ngược lại hiện thông báo "Không kiếm tìm thấy thành phần 2.".


public static void main(String<> args) ArrayList arrListInteger = new ArrayList();arrListInteger.add(7);arrListInteger.add(2);arrListInteger.add(9);// chất vấn arrListInteger có chứa bộ phận có giá trị bằng 2 hay khôngboolean resultCheck = arrListInteger.contains(2);// trường hợp resultCheck == true// thì hiển thị thông báo "Có thành phần 2 vào arrListInteger."https:// ngược lại hiện thông báo "Không tra cứu thấy thành phần 2."if (resultCheck == true) System.out.println("Có bộ phận 2 vào arrListInteger."); else System.out.println("Không tìm thấy phần tử 2.");

Kết quả sau thời điểm biên dịch chương trình:

Tìm kiếm địa chỉ xuất hiện đầu tiên của 1 phần tửtrong ArrayList.

Để tìm kiếm địa điểm xuất hiện trước tiên của một phần tửtrong ArrayList, chúng ta sẽ sừ dụng phương thứcindexOf(). Công dụng của cách tiến hành này đang trả về chỉ sốxuất hiện đầu tiên của phần tử đó vào ArrayList, ngược lại nếu không kiếm thấy trả về -1.


Cú pháp
int indexOf(giá_trị_phần_tử_cần_tìm);
lấy một ví dụ
public static void main(String<> args) ArrayList arrListString = new ArrayList();arrListString.add("Bird");arrListString.add("Rabbit");arrListString.add("Tiger");arrListString.add("Bird");// tra cứu kiếm địa điểm xuất hiện đầu tiên của bộ phận "Bird" trong arrListString// áp dụng phương thức indexOf()// công dụng của thủ tục này đã trả về 1 biến tất cả kiểu số nguyên int position1 = arrListString.indexOf("Bird");System.out.println("Vị trí xuất hiện trước tiên của phần tử "Bird" trong ArrayList là "+ position1);// search kiếm địa chỉ xuất hiện trước tiên của thành phần "Cat" vào arrListString// vì bộ phận này không tồn tại trong arrListString// nên kết quả sẽ bởi -1int position2 = arrListString.indexOf("Cat");System.out.println("Vị trí xuất hiện thứ nhất của phần tử "Cat" vào ArrayList là "+ position2);

Kết quả sau khi biên dịch chương trình:

Tìm kiếm vị trí xuất hiện cuối cùngcủa một trong những phần tửtrong List.

Để tìm kiếm kiếmvị trí mở ra cuối cùngcủa một phần tửtrong ArrayList, họ sẽ sừ dụng phương thứclastIndexOf(). Hiệu quả của thủ tục này đã trả về chỉ sốxuất hiện tại cuối cùngcủa phần tử đó trong ArrayList, ngược lại nếu không kiếm thấytrả về -1.


Cú pháp
int lastIndexOf(giá_trị_phần_tử_cần_tìm);
ví dụ như
public static void main(String<> args) ArrayList arrListChar = new ArrayList();arrListChar.add("A");arrListChar.add("B");arrListChar.add("C");arrListChar.add("D");arrListChar.add("E");arrListChar.add("F");arrListChar.add("C");arrListChar.add("D");// kiếm tìm kiếm vị trí xuất hiện cuối cùng của bộ phận "C" trong arrListChar// thực hiện phương thức lastIndexOf()// vào arrListChar có 2 phần tử "C"https:// nên công dụng của lịch trình sẽ trả về chỉ số của bộ phận "C" cuối cùng là 6int position1 = arrListChar.lastIndexOf("C");System.out.println("Vị trí xuất hiện ở đầu cuối của bộ phận "C" vào arrListChar là "+ position1);// tìm kiếm địa điểm xuất hiện cuối cùng của phần tử "D" trong arrListChar// sử dụng phương thức lastIndexOf()// trong arrListChar tất cả 2 bộ phận "D"https:// nên tác dụng của lịch trình sẽ trả về chỉ số của phần tử "D" sau cùng là 7int position2 = arrListChar.lastIndexOf("D");System.out.println("Vị trí xuất hiện sau cuối của thành phần "D" vào arrListChar là "+ position2);

Kết quả sau thời điểm biên dịch chương trình:

Chuyển ArrayList sang trọng Array (mảng)

Java cung cấp cho chúng ta phương thức toArray() để chuyển đổi một ArrayList quý phái mảng tương ứng. Sau đấy là ví dụ minh họa cách làm này:


public static void main(String<> args) {ArrayList arrListInteger = new ArrayList();arrListInteger.add(2);arrListInteger.add(4);arrListInteger.add(6);arrListInteger.add(8);// thay đổi arrListInteger quý phái mảng// sử dụng phương thức toArray()// kết quả của thủ tục này đang trả về mảng arr// tất cả kiểu là Object (chi huyết về Object họ sẽ gặp trong các bài sau)Object<> arr = arrListInteger.toArray();// thực hiện vòng lặp for để hiển thị các phần tử có trong mảng arrfor (int i = 0; i

Kết quả sau thời điểm biên dịch chương trình:

3. Lời kết

Trong bài xích này, tôi đã reviews cho chúng ta đặc điểm, những phương thức thường dùng của ArrayList. Sang bài xích sau họ sẽ tiếp tục mày mò 1 một số loại Class Collection tiếp theo sau đó là HashSet trong Java. Chúng ta theo dõi nhé!


Câu hỏi thường chạm mặt liên quan:


bài bác trước bài bác tiếp


bao giờ dùng default Methods vào Java 8

Ở 2 bài bác trước bọn họ đã mày mò 2 tính năng được cải thiện của Java…



biện pháp chuyển chữ hoa thành chữ hay trong Java

Trong nội dung bài viết này họ sẽ mày mò về cách biến hóa chữ in…



bài tập tính tổng những số thoải mái và tự nhiên trong Java

các số dương 1, 2, 3, 4, ... được call là những số từ nhiên,…


giải pháp chuyển chữ thường thành chữ hoa trong Java

trong chuỗi rất có thể vừa bao gồm ký tự hay vừa tất cả ký trường đoản cú hoa, nhưng…


biện pháp viết hoa ký kết tự thứ nhất trong Java

Để phát âm được bài xích này, chúng ta cần có kiến thức căn bạn dạng về Java…


phía dẫn đổi khác giờ phút giây trong Java

Để gọi được chương trình, các bạn cần có kỹ năng và kiến thức cơ phiên bản về Java.…


phương pháp lấy thời hạn hiện tại trong Java

Để phát âm được bài viết này, chúng ta cần có kiến thức cơ bạn dạng sau…


biện pháp làm tròn số vào Java

Khi triển khai tính toán, việc hiệu quả ra một số lượng thập phân dài…


phương pháp tìm ma trận gửi vị vào Java

quy trình hoán thay đổi giữa hàng cùng cột được gọi là chuyển vị của ma…


biện pháp chuyển ArrayList thành mảng và ngược lại trong Java

Để hiểu được bài này, các bạn cần có kỹ năng và kiến thức cơ bản về mảng…


bí quyết nối nhì mảng vào Java

mình sẽ triển khai hai lịch trình nối mảng. Chương trình trước tiên nối hai…


giải pháp xóa khoảng tầm trắng của chuỗi trong Java

bản thân sẽ tiến hành hai chương trình không giống nhau để các chúng ta cũng có thể hiểu…


In ra tam giác bằng ký trường đoản cú * và số vào Java

Mình đang giới thiệu phương pháp để in ra những tam giác bởi ký trường đoản cú *…


search số lớn nhất trong mảng Java

chúng ta cần tìm hiểu về mảng, biện pháp khởi chế tạo và in mảng vào Java…


Tìm ước của một trong những nguyên trong Java

Trong bài viết này họ sẽ khám phá cách tìm tất cả các ước…


giải pháp kiểm tra số đối xứng vào Java

Trong bài viết này họ sẽ kiểm tra một số trong những có cần là số…


Đảo ngược một số trong những trong Java

Mình sẽ giới thiệu các bạn cách hòn đảo ngược một số trong những sử dụng vòng lặp…


kiếm tìm bội chung nhỏ dại nhất vào Java

mình sẽ sử dụng hai cách không giống nhau để kiếm tìm BCNN. Cách đầu tiên mình…


bí quyết hoán đổi hai số trong Java

vào phần này bản thân sẽ sử dụng một vươn lên là tạm temp() làm đổi mới trung gian…


Chuyên mục: Kiến thức thú vị