Các List collection dùng để lưu trữ một tập dữ liệu dạng object trong Java. Do các object có thể mang giá trị NULL nên hoàn toàn một List sẽ có thể chứa một hoặc nhiều phần tử NULL. Việc chứa các phần tử NULL đôi lúc sẽ khiến mã xử lý quăng ra NullPointerException một cách vô hình khi chúng ta đang triển khai mã xử lý trên tập dữ liệu này. Do vậy việc xóa các phần tử NULL trước khi xử lý dữ liệu trong một List sẽ góp phần ngăn chặn các lỗi tiềm ẩn. Trong bài viết này chúng ta sẽ cùng nhau tìm ra các cách xóa những phần tử NULL trong List sử dụng Java cơ bản, hoặc là các thư viện bên thứ 3 cung cấp. Xóa phần tử NULL trong List sử dụng Java coreChúng ta hoàn toàn có thể sử dụng các code Java cơ bản để xóa các phần tử NULL trong List một cách dễ dàng. import java.util.List; import java.util.ArrayList; public class Main { public static void main(String[] args) { List<Integer> list = new ArrayList<>(); list.add(null); list.add(1); list.add(null); while (list.remove(null)); System.out.println(list); } }
Xóa phần tử NULL trong List sử dụng Google GuavaGoogle Guava cũng là một trong các thư viện lớn hỗ trợ xóa các phần tử NULL trong List một cách dễ dàng và rõ nghĩa hơn. import com.google.common.base.Predicates; import com.google.common.collect.Iterables; import java.util.List; import java.util.ArrayList; public class Main { public static void main(String[] args) { List<Integer> list = new ArrayList<>(); list.add(null); list.add(1); list.add(null); Iterables.removeIf(list, Predicates.isNull()); System.out.println(list); } }
Xóa phần tử NULL trong List sử dụng Apache Common CollectionsApache commons collections cũng cung cấp một method tương tự như Guava import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.collections4.PredicateUtils; import java.util.ArrayList; import java.util.List; public class Main { public static void main(String[] args) { List<Integer> list = new ArrayList<>(); list.add(null); list.add(1); list.add(null); CollectionUtils.filter(list, PredicateUtils.notNullPredicate()); System.out.println(list); } }
Xóa phần tử NULL trong List sử dụng Stream APIVới sự phát triển của Stream API từ Java 8, đây cũng là một cách thường xuyên được sử dụng thay vì phải import các thư viện bên thứ 3 vào. Chúng ta chỉ cần dùng Stream#filter method để lọc ra các phần tử NULL trong List. import java.util.Arrays; import java.util.List; import java.util.Objects; import java.util.stream.Collectors; public class Main { public static void main(String[] args) { List<Integer> list = Arrays.asList(null, 1, 2, null, 3, null); List<Integer> listWithoutNulls = list.parallelStream() .filter(Objects::nonNull) .collect(Collectors.toList()); System.out.println(listWithoutNulls); } }
Nguồn Would love your thoughts, please comment.x null trong Java giống như/tương tự nullptr trong C++. Chương trình trong C++: class Point { private: int x; int y; public: Point(int ix, int iy) { x = ix; y = iy; } void print() { std::cout << '(' << x << ',' << y << ')'; } }; int main() { Point* p = new Point(3,5); if (p != nullptr) { p->print(); p = nullptr; } else { std::cout << "p is null" << std::endl; } return 0; }Cùng một chương trình trong Java: public class Point { private int x; private int y; public Point(int ix, int iy) { x = ix; y = iy; } public void print() { System.out.print("(" + x + "," + y + ")"); } } class Program { public static void main(String[] args) { Point p = new Point(3,5); if (p != null) { p.print(); p = null; } else { System.out.println("p is null"); } } }Bây giờ bạn có hiểu từ các mã ở trên null là gì trong Java không? Nếu không thì tôi khuyên bạn nên học con trỏ trong C/C++ và sau đó bạn sẽ hiểu. Lưu ý rằng trong C, không giống như C++, nullptr không được xác định, nhưng NULL được sử dụng thay thế, nó cũng có thể được sử dụng trong C++, nhưng trong C++ nullptr thích hợp hơn chỉ là NULL, vì NULL trong C luôn liên quan đến con trỏ và đó là vì vậy, trong C++, hậu tố "ptr" đã được thêm vào cuối Word và tất cả các chữ cái đều là chữ thường, nhưng điều này ít quan trọng hơn. Trong Java, mọi biến của lớp loại không nguyên thủy luôn luôn tham chiếu đến đối tượng của kiểu đó hoặc được kế thừa và null là tham chiếu đối tượng lớp null, nhưng không phải là con trỏ null, vì trong Java không có "con trỏ" nào như vậy, nhưng tham chiếu đến lớp các đối tượng được sử dụng thay thế và null trong Java có liên quan đến các tham chiếu đối tượng lớp, vì vậy bạn cũng có thể gọi nó là "nullref" hoặc "nullrefobj", nhưng điều này dài, vì vậy chỉ cần gọi nó là "null". Trong C++, bạn có thể sử dụng các con trỏ và giá trị nullptr cho tùy chọn thành viên/biến, tức là thành viên/biến không có giá trị và nếu nó không có giá trị thì nó bằng với nullptr, vì vậy, null trong Java có thể như thế nào được sử dụng chẳng hạn. This post hasn't been updated for 5 years Khi làm quen với Javascript, mình đã tự hỏi tại sao lại có 2 giá trị đều mang nghĩa là "không có gì cả", đó là null và undefined. Đây là một trong những điểm dễ gây nhầm lẫn, null và undefined, hai khái niệm này không thể đồng nhất làm một dù cho ý nghĩa thực tế của chúng lại tương đối giống nhau. Vậy sự khác biệt giữa null và undefined là gì? 1. UndefinedUndefined có nghĩa là không xác định. Trong javascript, khi bạn khai báo một biến nhưng chưa gán giá trị cho nó, giá trị của biến đó sẽ là undefined. var test; alert(test); //undefinedBất cứ biến nào cũng có thể bị làm rỗng bằng cách thiết lập giá trị về không xác định (undefined). var test = undefined; alert(test) //undefined2. NullNull có nghĩa là giá trị rỗng hoặc giá trị không tồn tại, nó có thể được sử dụng để gán cho một biến như là một đại diện không có giá trị. var test = null; alert(test); //null3. Sự khác biệt giữa null và undefinedtypeof undefined // undefined typeof null // objectCó thể thấy undefind có kiểu giá trị là undefined nhưng null lại là 1 object (bạn có thể coi đó là một lỗi nhỏ trong JavaScript khi để kiểu của null là đối tượng, đáng ra kiểu của nó nên là null). null === undefined // false null == undefined // trueNgoài lề một chút:
4. Tổng kết.Hy vọng bài viết có thể phần nào giải thích được sự khác nhau giữa null và undefined trong javascript. Rất mong nhận được sự đóng góp ý kiến của các bạn để bài viết hoàn thiện hơn. Link tài liệu tham khảo: http://www.neilstuff.com/winhttp.html#null-vs-undefined https://mytechnetknowhows.wordpress.com/2016/05/27/some-java-script-nuances-null-undefined-nan/ All Rights Reserved |
Bài Viết Liên Quan
So sánh hai giai đoạn phong trào cần vương
Đặc điểm khác biệt giai đoạn hai của phong trào Cần Vương so với giai đoạn đầu là gì? B. Chỉ còn vài cuộc khởi nghĩa nhỏ. C. Không còn sự lãnh ...
So sánh nhất slow
COMPARATIVE AND SUPERLATIVE ADJECTIVESTÍNH TỪ SO SÁNH HƠN VÀ SO SÁNH NHẤTI - Tính từ ngắn và tính từ dài 1. Tính từ ngắn- Tính từ có một âm tiết Ví dụ: short, ...
So sánh hồn Trương Ba và da hàng thịt
Phân tích nhân vật hồn Trương BaPhân tích hồn Trương BaPhân tích hồn Trương Ba da hàng thịt - Hồn Trương Ba da hàng thịt là một tác phẩm kịch nổi tiếng ...
Các mã de thi THPT quốc gia có giống nhau không
Quy chế tuyển sinh đại học 2022Quy chế tuyển sinh đại học 2022 - Quy chế thi THPT quốc gia 2022 mới nhất vừa mới được Bộ giáo dục đào tạo ban hành tại ...
So sánh lãi suất tiền gửi giữa các ngân hàng
Thời gian đọc: 28 phút Hai ngân hàng SCB và Kienlongbank đang có lãi suất tiền gửi tiết kiệm cao nhất trong tháng 6, ghi nhận ở mức 7,3%/năm. So sánh Lãi suất vay ...
Caấu trúc so sánh nhất
Cấu trúc so sánh nhất là một loại câu phổ biến trong giao tiếp. Chúng ta thường sử dụng mẫu câu này để làm nổi bật một đặc điểm của chủ thể ...
So sánh trạng từ ngắn và trạng từ dài
BÀI 43: SO SÁNH HƠN CỦA TÍNH TỪ VÀ TRẠNG TỪ - Phần 3III. SO SÁNH HƠN CỦA TRẠNG TỪ NGẮN- Bài này rất LOẰNG NGOẰNG nên bọn em đọc kỹ và làm bài tập ...
So sánh redmi note 7 vs redmi note 8
Redmi Note 8, phiên bản nâng cấp của Redmi Note 7. Redmi Note 8 đã ra mắt thị trường ngày 29/08/2019 trong khi Redmi Note 7 ra mắt ngày 28/030/2019. Nội dung bài chia sẻ ...
So sánh samsung a51 và m31
Dòng A trên samsung A51 và dòng M trên samsung M31 điều là 2 chiếc điện thoại giá tốt của Samsung. Tuy không có sự chêch lệch quá lớn về mặt giá cả nhưng vẫn ...
Tác dụng của biện pháp so sánh trong bài quê hương
Trong bài thơ Quê hương tác giả đã sử dụng một số các biện pháp tu từ gồm có: Biện pháp so sánh: “Cánh buồm giương to (như) mảnh hồn làng” .Cánh buồm ...
Tìm những âm thanh được so sánh với nhau trong mỗi câu thơ, câu văn dưới đây
Hãy tìm những âm thanh được so sánh với nhau trong mỗi câu thơ, câu văn dưới đây :a) Tiếng suối được so sánh như tiếng đàn cầm.b) Tiếng suối được so ...
So sánh 4g và lte
LTE có lẽ là một cụm từ khá quen thuộc hiện nay nhưng không phải ai cũng hiểu rõ về nó, hay chỉ ra được sự khác biệt giữa LTE và 4G. Bài viết này BKAII ...
So sánh kia cerato 2018 và 2019
Hiện tại THACO đang phân phối Kia Cerato 2019 với 4 phiên bản: 3 số tự động và 1 số sàn, trong đó bản số sàn là bản cơ sở ít tiền nhất với giá ...
So sánh các chip snapdragon
Snapdragon và Exynos có lẽ là 2 cái tên nghe khá quen thuộc và thường được sử dụng trên các thiết bị Smartphone tại thị trường Việt Nam. Tuy nhiên ...
So sánh ngày trong c#
Header file có tên time.h trong Thư viện C chuẩn định nghĩa 4 kiểu biến, hai macro và các hàm đa dạng để thao tác với date và time.Các biến được định nghĩa ...
So sánh các cạnh của tam giác ABC, biết rằng a bằng 80 độ B bằng 45 độ C bằng 55 độ
Áp dụng định lí 2 :Trong một tam giác, cạnh đối diện với góc lớn hơn là cạnh lớn hơn. ( Để so sánh các cạnh của bài này ) Khách Hãy nhập ...
Từ láy có âm đầu và vần giống nhau
Mục Lục bài viết:1. Bài soạn số 12. Bài soạn số 21. So sánh hai từ ghép sau đây:Bánh trái (chỉ chung các loại bánh).Bánh rán (chỉ loại bánh nặn bằng bột ...
So sánh hô hấp với lên men
Giống nhau:- Đều sử dụng nguyên liệu đường đơn để phân giải sinh năng lượng cung cấp cho hoạt động sống.- Đều có chung giai đoạn đường phân.(*) Khác ...
So sánh quản trị khoa học và quản trị nghệ thuật
Câu 1: Khái niệm Quản trò? Vì sao nói quản trò vừa mang tính khoa học vừa mang tính nghệ thuật. Lấy một ví dụ thực tiễn để làm rõ. Cách 1: A/ Khái niệm: ...