Xóa Mảng Trong Java
Có thể bạn quan tâm
Hướng dẫn cách xóa mảng trong Java. Bạn sẽ học được 3 cách cơ bản để xóa phần tử trong mảng trong java sau bài học này.
Chúng ta có 3 phương pháp để xóa phần tử trong mảng trong Java như sau:
- Xóa 1 phần tử trong mảng trong Java bằng ArrayList
- Xóa phần tử thứ k trong mảng Java
- Xóa toàn bộ phần tử chỉ định trong mảng trong Java
Có thể xóa phần tử trong mảng trong Java?
xóa phần tử trong mảng trong Java, là xử lý nhằm xóa một phần tử ở cuối một mảng có sẵn.
Tuy nhiên mảng trong Java có kích thước cố định được quyết định khi khai báo mảng, và chúng ta không thể thay đổi kích thước của mảng sau khi khai báo. Do vậy về lý thuyết thì chúng ta không thể xóa phần tử trong mảng ban đầu được vì không thể làm giảm độ dài của mảng đó.
Bởi thế, để xóa phần tử trong một mảng, thì thay vì xóa trực tiếp phần tử và thay đổi kích thước mảng đó (là việc không thể) thì chúng ta cần phải chuẩn bị một mảng khác có kích thước phù hợp để có thể chứa kết quả xóa phần tử từ mảng ban đầu.
Và chúng ta sẽ có 3 cách cơ bản để xóa phần tử vào mảng trong Java theo logic ở trên như dưới đây.
Xóa một phần tử trong mảng trong Java bằng ArrayList
Khác với mảng thì ArrayList trong Java có độ dài không cố định và chúng ta có thể dễ dàng xóa phần tử từ một ArrayList đã tạo trước đó.
Để xóa phần tử trong mảng trong Java bằng ArrayList, chúng ta cần thực hiện các bước sau đây:
Chuyển mảng thành ArrayList
Xóa phần tử trong ArrayList
Chuyển ArrayList lại về mảng
Để xóa phần tử từ một ArrayList sẵn có, chúng ta sử dụng phương thức remove() với cú pháp sau đây:
l.remove(parameter);
Trong đó l là tên ArrayList và parameter là index hoặc là giá trị của phần tử cần xóa.
Lưu ý, nếu chỉ định parameter là một số thuộc kiểu int, thì phần tử có index bằng parameter sẽ được xóa. Nếu chỉ định parameter là một chuỗi thuộc kiểu String, thì phần tử đầu tiên có giá trị bằng parameter sẽ được xóa đi.
Ví dụ, chúng ta có một ArrayList như sau:
| List<String> list = new ArrayList<>();list.add("HaNoi");list.add("NinhBinh");list.add("NamDinh");list.add("NinhBinh");// In ArrayList vừa tạoSystem.out.println(list); // [HaNoi, NinhBinh, NamDinh, NinhBinh] |
Khi chỉ định parameter là index của phần tử, ví dụ như phần tử “NamDinh” có index bằng 2 thì phần tử đó sẽ được xóa đi khỏi ArrayList như sau:
| list.remove(2);System.out.println(list); // [HaNoi, NinhBinh, NinhBinh] |
Và nếu chỉ định parameter là giá trị của phần tử đó, thì phần tử đầu tiên được tìm thấy từ đầu ArrayList sẽ được xóa đi khỏi ArrayList như sau:
| list.remove("NinhBinh");System.out.println(list); //[HaNoi, NamDinh, NinhBinh] |
Ứng dụng điều này, chúng ta có thể chuyển mảng thành ArrayList, sau đó xóa phần tử đầu tiên được tìm thấy trong ArrayList đó, rồi chuyển lại ArrayList kết quả về mảng để hoàn chỉnh việc xóa mảng trong Java như chương trình sau đây:
| import java.util.*;public class Main { public static void main(String args[]) { // Tạo mảng int String[] arr = {"1", "5" , "3", "4", "2", "5"}; // In mảng ban đầu System.out.println("Mang ban dau:\n"+Arrays.toString(arr)); // Chuyển mảng thành ArrayList List<String> testList = new ArrayList<>(Arrays.asList(arr)); // In ArrayList vừa tạo System.out.println("ArrayList chua mang:\n"+ testList); // Xóa phần tử đầu tiên có giá trị bằng 5 testList.remove("5"); // In ArrayList sau khi xóa phần tử System.out.println("Xoa phan tu co giá tri bang 5 tu ArrayList:\n"+ testList); // Chuyển ArrayList kết quả trở về Array và lưu trong mảng kết quả arr = testList.toArray(new String[0]); // In mảng kết quả System.out.println("Mang ket qua :\n"+Arrays.toString(arr)); }} |
Kết quả, phần tử đầu tiên có giá trị bằng 5 được tìm thấy sẽ được xóa khỏi mảng ban đầu như sau:
| Mang ban dau:[1, 5, 3, 4, 2, 5]ArrayList chua mang:[1, 5, 3, 4, 2, 5]Xoa phan tu co giá tri bang 5 tu ArrayList:[1, 3, 4, 2, 5]Mang ket qua :[1, 3, 4, 2, 5] |
Lưu ý là ở trên mặc dù chúng ta sử dụng chung tên một biến mảng arr, nhưng biến mảng này tham chiếu tới 2 mảng hoàn toàn khác nhau trước và sau khi xóa phần tử. Bạn có thể tham khảo kỹ phần này tại bài viết Gán mảng cho một mảng khác trong Java.
Xóa phần tử thứ k trong mảng java
Cũng với cách sử dụng phương thức remove của ArrayList như trên trong trường hợp chỉ định parameter là index của phần tử, chúng ta có thể xóa phần tử thứ k trong mảng java bằng cách chỉ định parameter bằng chính k.
Ví dụ cụ thể chúng ta xóa phần tử thứ 2 trong mảng java trên như sau:
| import java.util.*;public class Main { public static void main(String args[]) { // Tạo mảng int String[] arr = {"1", "5" , "3", "4", "2", "5"}; // In mảng ban đầu System.out.println("Mang ban dau:\n"+Arrays.toString(arr)); // Chuyển mảng thành ArrayList List<String> testList = new ArrayList<>(Arrays.asList(arr)); // In ArrayList vừa tạo System.out.println("ArrayList chua mang:\n"+ testList); // Xóa phần tử thứ 2 trong ArrayList testList.remove(2); // In ArrayList sau khi xóa phần tử System.out.println("Xoa phan tu thu 2 trong ArrayList:\n"+ testList); // Chuyển ArrayList kết quả trở về Array và lưu trong mảng kết quả arr = testList.toArray(new String[0]); // In mảng kết quả System.out.println("Mang ket qua :\n"+Arrays.toString(arr)); }} |
Kết quả, phần tử có index k = 2 (giá trị bằng 3) sẽ được xóa đi khỏi mảng ban đầu như sau:
| Mang ban dau:[1, 5, 3, 4, 2, 5]ArrayList chua mang:[1, 5, 3, 4, 2, 5]Xoa phan tu thu 2 trong ArrayList:[1, 5, 4, 2, 5]Mang ket qua :[1, 5, 4, 2, 5] |
Xóa toàn bộ phần tử chỉ định trong mảng trong Java
Với phương pháp sử dụng ArrayList thuần túy như trên, chúng ta chỉ có thể xóa đi một phần tử duy nhất với mỗi lần thực thi chương trình.
Trong trường hợp bạn cần xóa toàn bộ phần tử có giá trị chỉ định trong mảng trong Java, ngoài ArrayList thì chúng ta cần phải kết hợp xóa vòng lặp for để có thể xóa toàn bộ phần tử chỉ định khỏi mảng ban đầu.
Ý tưởng ở đây là chúng ta sử dụng một vòng lặp để so sánh từng phần tử trong mảng với giá trị chỉ định, và sẽ copy phần tử đó sang ArrayList nếu giá trị của nó khác với giá trị chỉ định.
Sau đó, chỉ cần chuyển lại ArrayList về mảng là có thể thu về kết quả sau khi xóa toàn bộ phần tử chỉ định trong mảng trong Java, như chương trình sau đây:
| import java.util.*;public class Main { public static void main(String[] args){ Integer[] arr = {3,1,5,6,5}; System.out.println("Mang ban dau:\n"+Arrays.toString(arr)); //Chỉ định phần tử cần xóa int elementToBeDeleted= 5; //Tạo một ArrayList mới để chứa kết quả List<Integer> list = new ArrayList<Integer>(); //Lặp lại vòng lặp, so sánh và thêm các giá trị (trừ giá trị cần xóa) vào ArrayList for (int i = 0; i < arr.length-1; i++) { if(arr[i] != elementToBeDeleted){ list.add(arr[i]); } } // Chuyển ArrayList kết quả trở về Array và lưu trong mảng kết quả arr = list.toArray(new Integer[0]); // In mảng kết quả System.out.println("Mang ket qua :\n"+Arrays.toString(arr)); }} |
Kết quả, toàn bộ phần tử chỉ định sẽ được xóa đi khỏi mảng ban đầu như sau:
| Mang ban dau:[3, 1, 5, 6, 5]Mang ket qua :[3, 1, 6] |
Tổng kết
Trên đây Kiyoshi đã hướng dẫn bạn cách xóa phần tử trong mảng trong Java rồi. Để nắm rõ nội dung bài học hơn, bạn hãy thực hành viết lại các ví dụ của ngày hôm nay nhé.
Và hãy cùng tìm hiểu những kiến thức sâu hơn về Java trong các bài học tiếp theo
URL Link
https://laptrinhcanban.com/java/java-co-ban-cho-nguoi-moi-bat-dau/mang-trong-java/xoa-mang-trong-java/
Từ khóa » Xóa Mảng Trong Java
-
Java - Xóa Phần Tử Có Giá Trị K Trong Mảng (k Nhập Từ Bàn Phím).
-
Tìm Kiếm, Thêm, Xoá Phần Tử Trong Mảng Chưa được Sắp Xếp
-
Cách Xoá Một Phần Tử Của Mảng Vĩnh Viễn Trong Java - Dạy Nhau Học
-
Xóa Một Phần Tử Trong Mảng (Array) Trong Java
-
Cách Tốt Nhất để Xóa Phần Tử đầu Tiên Khỏi Mảng Là Gì? - HelpEx
-
Làm Cách Nào để Xóa Các đối Tượng Khỏi Một Mảng Trong Java?
-
Xóa 1 Phần Tử Trong Arraylist Java? - Tạo Website
-
Java: Xóa Phần Tử Có Chỉ Số Cụ Thể Khỏi Mảng | V1Study
-
Chương Trình Java để Xóa Các Bản Sao Mảng
-
Java: Xóa Phần Tử Có Chỉ Số Cụ Thể Khỏi Mảng
-
Xóa Hẳn 1 Phần Tử Trong Mãng - Cộng đồng Java Việt Nam
-
Bài 44. Xóa Phần Tử Theo Vị Trí Trong Mảng, Xóa Phần Tử Theo điều ...
-
Java: Xóa Những Phần Tử Trùng Nhau | V1Study
-
Xóa Một Phần Tử ở Vị Trí Bất Kì Trong Mảng C - Lập Trình Từ Đầu