From 6d7827d7329b07f98d611db5223aeb42634a8941 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?hexmind=20Tomasz=20Skowro=C5=84ski?= Date: Sun, 8 Jan 2017 15:57:16 +0100 Subject: [PATCH] remove_null_from_list_java --- .../collections/FilterNullFromCollection.java | 39 +++++++++++++------ 1 file changed, 28 insertions(+), 11 deletions(-) diff --git a/src/test/java/com/levelup/java/collections/FilterNullFromCollection.java b/src/test/java/com/levelup/java/collections/FilterNullFromCollection.java index 37389527..aaf5e962 100644 --- a/src/test/java/com/levelup/java/collections/FilterNullFromCollection.java +++ b/src/test/java/com/levelup/java/collections/FilterNullFromCollection.java @@ -4,6 +4,7 @@ import static org.junit.Assert.assertThat; import java.util.ArrayList; +import java.util.Arrays; import java.util.Collection; import java.util.Collections; import java.util.List; @@ -27,11 +28,12 @@ * @author Justin Musgrove * @see Filter null from collection */ +@SuppressWarnings("SuspiciousMethodCalls") public class FilterNullFromCollection { @Test - public void remove_null_from_list_java () { + public void remove_null_from_mutable_list_java() { List strings = new ArrayList<>(); strings.add(null); @@ -45,28 +47,43 @@ public void remove_null_from_list_java () { assertEquals(3, strings.size()); } + + + @Test(expected = UnsupportedOperationException.class) + public void try_remove_null_from_immutable_list_java() { + + List strings = Arrays.asList(null, "www", null, "leveluplunch", "com", null); + + strings.removeAll(Collections.singleton(null)); + } + + @Test + public void remove_null_from_immutable_list_java() { + + List strings = Arrays.asList(null, "www", null, "leveluplunch", "com", null); + + List filterStrings = new ArrayList(strings) { + { + removeAll(Collections.singleton(null)); + } + }; + + assertEquals(3, filterStrings.size()); + } @Test public void remove_null_from_list_java8_lambda () { List strings = Lists.newArrayList( - null, "www", null, + null, "www", null, "leveluplunch", "com", null); List filterStrings = strings - .stream() - .filter(p -> p != null) - .collect(Collectors.toList()); - - assertEquals(3, filterStrings.size()); - - // or - List filterStrings2 = strings .stream() .filter(Objects::nonNull) .collect(Collectors.toList()); - assertEquals(3, filterStrings2.size()); + assertEquals(3, filterStrings.size()); }