diff --git a/.github/workflows/maven.yml b/.github/workflows/maven.yml index 7498ab8..cc8ee82 100644 --- a/.github/workflows/maven.yml +++ b/.github/workflows/maven.yml @@ -12,10 +12,10 @@ jobs: steps: - uses: actions/checkout@v3 - - name: Set up JDK 17 + - name: Set up JDK 21 uses: actions/setup-java@v3 with: - java-version: '17' + java-version: '21' distribution: 'adopt' cache: 'maven' - name: Build with Maven diff --git a/java-collections/collections-map/src/main/java/com/amitph/java/collections/map/MapInitializer.java b/java-collections/collections-map/src/main/java/com/amitph/java/collections/map/MapInitializer.java index 9929fc5..32fefc9 100644 --- a/java-collections/collections-map/src/main/java/com/amitph/java/collections/map/MapInitializer.java +++ b/java-collections/collections-map/src/main/java/com/amitph/java/collections/map/MapInitializer.java @@ -2,7 +2,6 @@ import com.google.common.collect.ImmutableMap; import com.google.common.collect.Maps; - import java.util.Collections; import java.util.HashMap; import java.util.Map; @@ -21,13 +20,14 @@ public void initializeJavaHashMap() { } public void initializeJavaHashMapUsingAnonymousSubClass() { - Map map = new HashMap<>() { - { - put("color", "black"); - put("drink", "coffee"); - put("shape", "slim"); - } - }; + Map map = + new HashMap<>() { + { + put("color", "black"); + put("drink", "coffee"); + put("shape", "slim"); + } + }; System.out.println(map); } @@ -38,15 +38,13 @@ public void initializeImmutableJavaHashMap() { map.put("drink", "coffee"); map.put("shape", "slim"); - Map immutableMap = - Collections.unmodifiableMap(map); + Map immutableMap = Collections.unmodifiableMap(map); System.out.println(immutableMap); } public void initializeSingletonJavaHashMap() { - Map map = - Collections.singletonMap("color", "black"); + Map map = Collections.singletonMap("color", "black"); System.out.println(map); } @@ -56,15 +54,15 @@ public void initializeEmptyJavaHashMap() { } public void initializeImmutableJavaHashMapUsingGuava() { - Map immutableMap = ImmutableMap - .of("color", "pink", "drink", "coffee", "shape", "slim"); + Map immutableMap = + ImmutableMap.of("color", "pink", "drink", "coffee", "shape", "slim"); System.out.println(immutableMap); } public void initializeMutableJavaHashMapUsingGuava() { - Map immutableMap = ImmutableMap - .of("color", "pink", "drink", "coffee", "shape", "slim"); + Map immutableMap = + ImmutableMap.of("color", "pink", "drink", "coffee", "shape", "slim"); Map mutableMap = Maps.newHashMap(immutableMap); System.out.println(mutableMap); @@ -72,23 +70,21 @@ public void initializeMutableJavaHashMapUsingGuava() { public void initializeJavaHashMapUsingCollectorsToMap() { Set set = Set.of("Pink", "Red", "Black"); - Map map = set.stream() - .collect(Collectors.toMap(String::toUpperCase, String::toLowerCase)); + Map map = + set.stream().collect(Collectors.toMap(String::toUpperCase, String::toLowerCase)); System.out.println(map); } public void initializeJavaHashMapUsingMapOf() { - Map immutableMap = - Map.of("color", "black", "drink", "coffee"); + Map immutableMap = Map.of("color", "black", "drink", "coffee"); System.out.println(immutableMap); } public void initializeJavaHashMapUsingMapOfEntries() { - Map immutableMap = Map.ofEntries( - Map.entry("color", "pink"), - Map.entry("drink", "coffee")); + Map immutableMap = + Map.ofEntries(Map.entry("color", "pink"), Map.entry("drink", "coffee")); System.out.println(immutableMap); } @@ -126,4 +122,4 @@ public static void main(String[] a) { System.out.println("Initialize HashMap using factory method ofEntries()"); initializer.initializeJavaHashMapUsingMapOfEntries(); } -} \ No newline at end of file +} diff --git a/java-collections/collections-map/src/main/java/com/amitph/java/collections/map/merge/MergeMap.java b/java-collections/collections-map/src/main/java/com/amitph/java/collections/map/merge/MergeMap.java index a5a3d79..3a327ff 100644 --- a/java-collections/collections-map/src/main/java/com/amitph/java/collections/map/merge/MergeMap.java +++ b/java-collections/collections-map/src/main/java/com/amitph/java/collections/map/merge/MergeMap.java @@ -6,28 +6,29 @@ import java.util.stream.Stream; public class MergeMap { - private final Map map1 = Map.of( - 1, "Ned", - 2, "Jon", - 3, "Khal" - ); - - private final Map map2 = Map.of( - 1, "Tywin", - 2, "Jon", - 4, "Petyr" - ); - + private final Map map1 = + Map.of( + 1, "Ned", + 2, "Jon", + 3, "Khal"); + + private final Map map2 = + Map.of( + 1, "Tywin", + 2, "Jon", + 4, "Petyr"); private void usingStreamOf() { System.out.println("merge usingStreamOf"); - Map map3 = Stream.of(map1, map2) - .flatMap(map -> map.entrySet().stream()) - .collect(Collectors.toMap( - Map.Entry::getKey, - Map.Entry::getValue, - (value1, value2) -> value1)); + Map map3 = + Stream.of(map1, map2) + .flatMap(map -> map.entrySet().stream()) + .collect( + Collectors.toMap( + Map.Entry::getKey, + Map.Entry::getValue, + (value1, value2) -> value1)); System.out.println(map3); } @@ -37,10 +38,9 @@ private void usingStreamConcat() { Map map3 = Stream.concat(map1.entrySet().stream(), map2.entrySet().stream()) - .collect(Collectors.toMap( - Map.Entry::getKey, - Map.Entry::getValue, - (v1, v2) -> v1)); + .collect( + Collectors.toMap( + Map.Entry::getKey, Map.Entry::getValue, (v1, v2) -> v1)); System.out.println(map3); } @@ -58,11 +58,7 @@ private void usingMapMerge() { System.out.println("merge usingMapMerge"); Map map3 = new HashMap<>(map1); - map2.forEach((key, value) -> - map3.merge( - key, - value, - (value1, value2) -> value1)); + map2.forEach((key, value) -> map3.merge(key, value, (value1, value2) -> value1)); System.out.println(map3); } diff --git a/java-collections/collections-map/src/main/java/com/amitph/java/collections/map/model/Product.java b/java-collections/collections-map/src/main/java/com/amitph/java/collections/map/model/Product.java index 165ef58..b2b2dd0 100644 --- a/java-collections/collections-map/src/main/java/com/amitph/java/collections/map/model/Product.java +++ b/java-collections/collections-map/src/main/java/com/amitph/java/collections/map/model/Product.java @@ -12,4 +12,4 @@ public class Product implements Comparable { public int compareTo(Product product) { return name.compareTo(product.name); } -} \ No newline at end of file +} diff --git a/java-collections/collections-map/src/main/java/com/amitph/java/collections/map/sort/SortMap.java b/java-collections/collections-map/src/main/java/com/amitph/java/collections/map/sort/SortMap.java index d574316..7612432 100644 --- a/java-collections/collections-map/src/main/java/com/amitph/java/collections/map/sort/SortMap.java +++ b/java-collections/collections-map/src/main/java/com/amitph/java/collections/map/sort/SortMap.java @@ -1,7 +1,6 @@ package com.amitph.java.collections.map.sort; import com.amitph.java.collections.map.model.Product; - import java.util.ArrayList; import java.util.Collections; import java.util.HashMap; @@ -43,15 +42,11 @@ private void usingTreeMap() { private void usingJavaStreams() { System.out.println("Using JavaStreams: sort by key..."); - map.entrySet().stream() - .sorted(Map.Entry.comparingByKey()) - .forEach(System.out::println); + map.entrySet().stream().sorted(Map.Entry.comparingByKey()).forEach(System.out::println); System.out.println("Using JavaStreams: sort by value..."); - map.entrySet().stream() - .sorted(Map.Entry.comparingByValue()) - .forEach(System.out::println); + map.entrySet().stream().sorted(Map.Entry.comparingByValue()).forEach(System.out::println); } private void usingTreeSet() { @@ -89,4 +84,4 @@ public static void main(String[] a) { sortMap.usingTreeSet(); sortMap.usingArrayList(); } -} \ No newline at end of file +} diff --git a/java-collections/src/main/java/com/amitph/java/collections/ListSetConverter.java b/java-collections/src/main/java/com/amitph/java/collections/ListSetConverter.java index e493771..b0d9b66 100644 --- a/java-collections/src/main/java/com/amitph/java/collections/ListSetConverter.java +++ b/java-collections/src/main/java/com/amitph/java/collections/ListSetConverter.java @@ -2,12 +2,11 @@ import com.google.common.collect.Lists; import com.google.common.collect.Sets; -import org.apache.commons.collections4.CollectionUtils; - import java.util.ArrayList; import java.util.HashSet; import java.util.List; import java.util.Set; +import org.apache.commons.collections4.CollectionUtils; public class ListSetConverter { @@ -69,7 +68,6 @@ public void listToSetWithApacheCommons() { System.out.println(set); } - public static void main(String[] a) { ListSetConverter converter = new ListSetConverter(); @@ -97,4 +95,4 @@ public static void main(String[] a) { System.out.println("List to Set using Apache Commons"); converter.listToSetWithApacheCommons(); } -} \ No newline at end of file +} diff --git a/java-collections/src/main/java/com/amitph/java/collections/MultiFieldSorter.java b/java-collections/src/main/java/com/amitph/java/collections/MultiFieldSorter.java index fa50f3c..8efd2c1 100644 --- a/java-collections/src/main/java/com/amitph/java/collections/MultiFieldSorter.java +++ b/java-collections/src/main/java/com/amitph/java/collections/MultiFieldSorter.java @@ -1,24 +1,24 @@ package com.amitph.java.collections; import com.google.common.collect.ComparisonChain; +import java.util.ArrayList; +import java.util.Comparator; +import java.util.List; import lombok.Getter; import lombok.RequiredArgsConstructor; import lombok.ToString; import org.apache.commons.lang3.builder.CompareToBuilder; -import java.util.ArrayList; -import java.util.Comparator; -import java.util.List; - @RequiredArgsConstructor public class MultiFieldSorter { - private final List collection = new ArrayList<>(List.of( - new Student(1L, "Ray", 18), - new Student(2L, "Bee", 18), - new Student(3L, "Ray", 17), - new Student(4L, "Bia", 15), - new Student(5L, "Ria", 15) - )); + private final List collection = + new ArrayList<>( + List.of( + new Student(1L, "Ray", 18), + new Student(2L, "Bee", 18), + new Student(3L, "Ray", 17), + new Student(4L, "Bia", 15), + new Student(5L, "Ria", 15))); public void sortUsingComparator_Field_by_Field() { collection.sort(new SimpleComparator()); @@ -36,9 +36,7 @@ public void sortUsingComparator_Commons_CompareToBuilder() { } public void sortUsingComparator_Comparing() { - collection.sort(Comparator - .comparing(Student::getName) - .thenComparing(Student::getAge)); + collection.sort(Comparator.comparing(Student::getName).thenComparing(Student::getAge)); collection.forEach(System.out::println); } @@ -76,8 +74,7 @@ class SimpleComparator implements Comparator { public int compare(Student o1, Student o2) { int difference = o1.getName().compareTo(o2.getName()); - return (difference != 0) ? difference - : Integer.compare(o1.getAge(), o2.getAge()); + return (difference != 0) ? difference : Integer.compare(o1.getAge(), o2.getAge()); } } @@ -99,4 +96,4 @@ public int compare(Student o1, Student o2) { .append(o1.getAge(), o2.getAge()) .build(); } -} \ No newline at end of file +} diff --git a/java-collections/src/main/java/com/amitph/java/collections/list/ListAndArrayConverter.java b/java-collections/src/main/java/com/amitph/java/collections/list/ListAndArrayConverter.java index 53ae7e4..b58c0a8 100644 --- a/java-collections/src/main/java/com/amitph/java/collections/list/ListAndArrayConverter.java +++ b/java-collections/src/main/java/com/amitph/java/collections/list/ListAndArrayConverter.java @@ -2,15 +2,14 @@ import com.google.common.collect.Lists; import com.google.common.primitives.Ints; -import org.apache.commons.collections4.CollectionUtils; - import java.util.ArrayList; import java.util.Arrays; import java.util.List; +import org.apache.commons.collections4.CollectionUtils; public class ListAndArrayConverter { public void arrayToListUsingJava_createImmutableList() { - Integer[] array = new Integer[]{98, 99, 100}; + Integer[] array = new Integer[] {98, 99, 100}; List list = Arrays.asList(array); System.out.println(list); @@ -24,15 +23,14 @@ public void listToArrayUsingJava() { } public void arrayToListUsingJava_createMutableList() { - Integer[] array = new Integer[]{98, 99, 100}; - List list = - new ArrayList<>(Arrays.asList(array)); + Integer[] array = new Integer[] {98, 99, 100}; + List list = new ArrayList<>(Arrays.asList(array)); System.out.println(list); } public void arrayToListUsingApacheCommons() { - Integer[] array = new Integer[]{98, 99, 100}; + Integer[] array = new Integer[] {98, 99, 100}; List list = new ArrayList<>(); CollectionUtils.addAll(list, array); @@ -40,7 +38,7 @@ public void arrayToListUsingApacheCommons() { } public void arrayToListUsingGuava() { - Integer[] array = new Integer[]{98, 99, 100}; + Integer[] array = new Integer[] {98, 99, 100}; List list = Lists.newArrayList(array); System.out.println(list); @@ -74,4 +72,4 @@ public static void main(String[] a) { System.out.println("List to Array using Guava"); converter.listToArrayUsingGuava(); } -} \ No newline at end of file +} diff --git a/java-collections/src/main/java/com/amitph/java/collections/list/ListCaseInsensitiveSearcher.java b/java-collections/src/main/java/com/amitph/java/collections/list/ListCaseInsensitiveSearcher.java index 91574e9..8915d1e 100644 --- a/java-collections/src/main/java/com/amitph/java/collections/list/ListCaseInsensitiveSearcher.java +++ b/java-collections/src/main/java/com/amitph/java/collections/list/ListCaseInsensitiveSearcher.java @@ -8,8 +8,7 @@ public class ListCaseInsensitiveSearcher { private final List list = List.of("Ray", "Leo", "Bee", "Tim"); public void usingStreams() { - boolean contains = list.stream() - .anyMatch(x -> x.equalsIgnoreCase("raY")); + boolean contains = list.stream().anyMatch(x -> x.equalsIgnoreCase("raY")); System.out.println(contains); } @@ -23,8 +22,7 @@ public void usingOverriddenContains() { System.out.println(customList.contains("raY")); - System.out.println( - customList.containsAll(List.of("ray", "bEE", "tIm"))); + System.out.println(customList.containsAll(List.of("ray", "bEE", "tIm"))); } public static boolean searchIgnoringCase(List list, String text) { @@ -58,7 +56,6 @@ public CaseInsensitiveArrayList(Collection c) { @Override public boolean contains(Object o) { String text = (String) o; - return this.stream() - .anyMatch(x -> x.equalsIgnoreCase(text)); + return this.stream().anyMatch(x -> x.equalsIgnoreCase(text)); } -} \ No newline at end of file +} diff --git a/java-collections/src/main/java/com/amitph/java/collections/list/ListDeduplicator.java b/java-collections/src/main/java/com/amitph/java/collections/list/ListDeduplicator.java index 9c25bbb..027c19d 100644 --- a/java-collections/src/main/java/com/amitph/java/collections/list/ListDeduplicator.java +++ b/java-collections/src/main/java/com/amitph/java/collections/list/ListDeduplicator.java @@ -6,9 +6,7 @@ public class ListDeduplicator { public List usingStreamDistinct(List list) { - return list.stream() - .distinct() - .toList(); + return list.stream().distinct().toList(); } public List usingJavaSet(List list) { @@ -19,12 +17,12 @@ public static void main(String[] ar) { ListDeduplicator deduplicator = new ListDeduplicator(); System.out.println("Remove duplicates from list: using Streams distinct()"); - deduplicator.usingStreamDistinct(List.of(1, 2, 4, 2, 1, 4, 2, 5, 6, 4)) + deduplicator + .usingStreamDistinct(List.of(1, 2, 4, 2, 1, 4, 2, 5, 6, 4)) .forEach(System.out::print); System.out.println(); System.out.println("Remove duplicates from list: using Java Set"); - deduplicator.usingJavaSet(List.of(1, 2, 4, 2, 1, 4, 2, 5, 6, 4)) - .forEach(System.out::print); + deduplicator.usingJavaSet(List.of(1, 2, 4, 2, 1, 4, 2, 5, 6, 4)).forEach(System.out::print); } -} \ No newline at end of file +} diff --git a/java-collections/src/main/java/com/amitph/java/collections/list/ListEqualityAsserter.java b/java-collections/src/main/java/com/amitph/java/collections/list/ListEqualityAsserter.java index 4d06aaf..3a63069 100644 --- a/java-collections/src/main/java/com/amitph/java/collections/list/ListEqualityAsserter.java +++ b/java-collections/src/main/java/com/amitph/java/collections/list/ListEqualityAsserter.java @@ -1,8 +1,7 @@ package com.amitph.java.collections.list; -import org.junit.Assert; - import java.util.List; +import org.junit.Assert; public class ListEqualityAsserter { private final List list1 = List.of(10, 11, 12, 14); @@ -51,4 +50,4 @@ public static void main(String[] a) { asserter.usingTestNG(); asserter.usingAssertJ(); } -} \ No newline at end of file +} diff --git a/java-collections/src/main/java/com/amitph/java/collections/list/ListInitializer.java b/java-collections/src/main/java/com/amitph/java/collections/list/ListInitializer.java index 8d0bf1f..a7557f3 100644 --- a/java-collections/src/main/java/com/amitph/java/collections/list/ListInitializer.java +++ b/java-collections/src/main/java/com/amitph/java/collections/list/ListInitializer.java @@ -19,7 +19,6 @@ public void initializeJavaArrayList() { list.forEach(System.out::println); } - public void initializeJavaArrayListFromCollection() { Collection hashSet = Set.of(1, 2, 3); List list = new ArrayList<>(hashSet); @@ -34,20 +33,20 @@ public void initializeJavaArrayListFromCollectorsToList() { } public void initializeJavaArrayListFromCollectorsToCollection() { - List list = Stream.of(1, 2, 3) - .collect(Collectors.toCollection(ArrayList::new)); + List list = Stream.of(1, 2, 3).collect(Collectors.toCollection(ArrayList::new)); list.forEach(System.out::println); } public void initializeJavaArrayListUsingAnonymousSubClass() { - List list = new ArrayList<>() { - { - add(1); - add(2); - add(3); - } - }; + List list = + new ArrayList<>() { + { + add(1); + add(2); + add(3); + } + }; list.forEach(System.out::println); } @@ -71,11 +70,11 @@ public void initializeSingletonArrayList() { } public void initializeImmutableArrayListUsingAnotherArray() { - Integer[] array = new Integer[]{1, 2, 3}; + Integer[] array = new Integer[] {1, 2, 3}; List list = Arrays.asList(array); System.out.println(list); - //modify the array + // modify the array array[0] = 100; System.out.println(Arrays.toString(array)); System.out.println(list); @@ -116,4 +115,4 @@ public static void main(String[] a) { System.out.println("Initialize immutable ArrayList using Plain Java"); initializer.initializeImmutableArrayListWithPlainJava(); } -} \ No newline at end of file +} diff --git a/java-collections/src/main/java/com/amitph/java/collections/list/ListPartitioner.java b/java-collections/src/main/java/com/amitph/java/collections/list/ListPartitioner.java index 4257f1e..3898b7c 100644 --- a/java-collections/src/main/java/com/amitph/java/collections/list/ListPartitioner.java +++ b/java-collections/src/main/java/com/amitph/java/collections/list/ListPartitioner.java @@ -2,12 +2,11 @@ import com.google.common.collect.Iterables; import com.google.common.collect.Lists; -import org.apache.commons.collections4.ListUtils; - import java.util.ArrayList; import java.util.Collection; import java.util.List; import java.util.stream.IntStream; +import org.apache.commons.collections4.ListUtils; public class ListPartitioner { public List> partitionListUsingGuava(List list, int size) { @@ -49,25 +48,19 @@ public static void main(String[] a) { System.out.println("Partition a Java List: Using Guava"); List list = IntStream.rangeClosed(1, 21).boxed().toList(); - partitioner.partitionListUsingGuava(list, 5) - .forEach(System.out::println); - + partitioner.partitionListUsingGuava(list, 5).forEach(System.out::println); System.out.println("Partition a Java Collection: Using Guava"); Collection collection = IntStream.rangeClosed(1, 21).boxed().toList(); - partitioner.partitionCollectionUsingGuava(collection, 5) - .forEach(System.out::println); + partitioner.partitionCollectionUsingGuava(collection, 5).forEach(System.out::println); System.out.println("Partition a Java Collection: Using Guava"); - partitioner.paddedPartitionCollectionUsingGuava(collection, 5) - .forEach(System.out::println); + partitioner.paddedPartitionCollectionUsingGuava(collection, 5).forEach(System.out::println); System.out.println("Partition a Java List: Using Apache Commons Collections"); - partitioner.partitionListUsingApacheCommons(list, 5) - .forEach(System.out::println); + partitioner.partitionListUsingApacheCommons(list, 5).forEach(System.out::println); System.out.println("Partition a Java List: Using Plain Java"); - partitioner.partitionListUsingPlainJava(list, 5) - .forEach(System.out::println); + partitioner.partitionListUsingPlainJava(list, 5).forEach(System.out::println); } } diff --git a/java-collections/src/main/java/com/amitph/java/collections/list/ListsComparer.java b/java-collections/src/main/java/com/amitph/java/collections/list/ListsComparer.java index e346155..06f2620 100644 --- a/java-collections/src/main/java/com/amitph/java/collections/list/ListsComparer.java +++ b/java-collections/src/main/java/com/amitph/java/collections/list/ListsComparer.java @@ -1,10 +1,9 @@ package com.amitph.java.collections.list; -import org.apache.commons.collections4.CollectionUtils; - import java.util.ArrayList; import java.util.List; import java.util.function.Predicate; +import org.apache.commons.collections4.CollectionUtils; public class ListsComparer { public void checkEquality() { @@ -20,18 +19,16 @@ public void findCommonElements() { List one = List.of(1, 2, 4, 6, 8); List two = List.of(3, 4, 5, 6, 7); - //Plain Java + // Plain Java List commons = new ArrayList<>(one); commons.retainAll(two); System.out.println(commons); - //Java Streams - commons = one.stream() - .filter(two::contains) - .toList(); + // Java Streams + commons = one.stream().filter(two::contains).toList(); System.out.println(commons); - //Apache Commons Collections + // Apache Commons Collections commons = new ArrayList<>(CollectionUtils.intersection(one, two)); System.out.println(commons); } @@ -40,18 +37,16 @@ public void findDifferentElements() { List one = List.of(1, 2, 4, 6, 8); List two = List.of(3, 4, 5, 6, 7); - //Plain Java + // Plain Java List difference = new ArrayList<>(one); difference.removeAll(two); System.out.println(difference); - //Java Streams - difference = one.stream() - .filter(Predicate.not(two::contains)) - .toList(); + // Java Streams + difference = one.stream().filter(Predicate.not(two::contains)).toList(); System.out.println(difference); - //Apache Commons Collections + // Apache Commons Collections difference = new ArrayList<>(CollectionUtils.removeAll(one, two)); System.out.println(difference); } @@ -62,4 +57,4 @@ public static void main(String[] a) { comparer.findCommonElements(); comparer.findDifferentElements(); } -} \ No newline at end of file +} diff --git a/java-collections/src/main/java/com/amitph/java/collections/list/ListsDifferenceFinder.java b/java-collections/src/main/java/com/amitph/java/collections/list/ListsDifferenceFinder.java index 5ba0b30..1ba6c62 100644 --- a/java-collections/src/main/java/com/amitph/java/collections/list/ListsDifferenceFinder.java +++ b/java-collections/src/main/java/com/amitph/java/collections/list/ListsDifferenceFinder.java @@ -1,12 +1,11 @@ package com.amitph.java.collections.list; import com.google.common.collect.Sets; -import org.apache.commons.collections4.CollectionUtils; - import java.util.ArrayList; import java.util.HashSet; import java.util.List; import java.util.Set; +import org.apache.commons.collections4.CollectionUtils; public class ListsDifferenceFinder { @@ -29,15 +28,11 @@ public void usingPlainJava() { public void usingStreams() { System.out.println("The first List minus the second List"); - List difference = one.stream() - .filter(e -> !two.contains(e)) - .toList(); + List difference = one.stream().filter(e -> !two.contains(e)).toList(); System.out.println(difference); System.out.println("The second List minus the first List"); - difference = two.stream() - .filter(e -> !one.contains(e)) - .toList(); + difference = two.stream().filter(e -> !one.contains(e)).toList(); System.out.println(difference); } @@ -56,7 +51,6 @@ public void usingGuava() { System.out.println(differences); } - public static void main(String[] a) { ListsDifferenceFinder differenceFinder = new ListsDifferenceFinder(); @@ -75,4 +69,4 @@ public static void main(String[] a) { System.out.println("Using Guava:"); differenceFinder.usingGuava(); } -} \ No newline at end of file +} diff --git a/java-collections/src/main/java/com/amitph/java/collections/list/NestedListsFlattener.java b/java-collections/src/main/java/com/amitph/java/collections/list/NestedListsFlattener.java index c431aad..721dfe5 100644 --- a/java-collections/src/main/java/com/amitph/java/collections/list/NestedListsFlattener.java +++ b/java-collections/src/main/java/com/amitph/java/collections/list/NestedListsFlattener.java @@ -1,18 +1,14 @@ package com.amitph.java.collections.list; import com.google.common.collect.Iterables; -import org.assertj.core.util.Lists; - import java.util.ArrayList; import java.util.Collection; import java.util.List; +import org.assertj.core.util.Lists; public class NestedListsFlattener { - private final List> list = List.of( - List.of(1, 4, 3), - List.of(12, 17, 14), - List.of(31, 39, 32) - ); + private final List> list = + List.of(List.of(1, 4, 3), List.of(12, 17, 14), List.of(31, 39, 32)); public void usingForEach() { List output = new ArrayList<>(); @@ -22,9 +18,7 @@ public void usingForEach() { } public void usingFlatMap() { - List output = list.stream() - .flatMap(Collection::stream) - .toList(); + List output = list.stream().flatMap(Collection::stream).toList(); System.out.println(output); } diff --git a/java-collections/src/main/java/com/amitph/java/collections/list/OrderAgnosticListEqualityAsserter.java b/java-collections/src/main/java/com/amitph/java/collections/list/OrderAgnosticListEqualityAsserter.java index 2e07bf5..b129db9 100644 --- a/java-collections/src/main/java/com/amitph/java/collections/list/OrderAgnosticListEqualityAsserter.java +++ b/java-collections/src/main/java/com/amitph/java/collections/list/OrderAgnosticListEqualityAsserter.java @@ -1,13 +1,12 @@ package com.amitph.java.collections.list; +import java.util.List; import org.apache.commons.collections4.CollectionUtils; import org.assertj.core.api.Assertions; import org.hamcrest.MatcherAssert; import org.hamcrest.Matchers; import org.testng.Assert; -import java.util.List; - public class OrderAgnosticListEqualityAsserter { private final List list1 = List.of(11, 12, 13, 14, 16); private final List list2 = List.of(14, 13, 12, 16, 11); @@ -15,30 +14,26 @@ public class OrderAgnosticListEqualityAsserter { public void usingTestNG() { Assert.assertTrue( - list1.size() == list2.size() && - list1.containsAll(list2) && - list2.containsAll(list1) - ); + list1.size() == list2.size() + && list1.containsAll(list2) + && list2.containsAll(list1)); Assert.assertFalse( - list1.size() == list3.size() && - list1.containsAll(list3) && - list3.containsAll(list1) - ); + list1.size() == list3.size() + && list1.containsAll(list3) + && list3.containsAll(list1)); } public void usingJUnit() { org.junit.Assert.assertTrue( - list1.size() == list2.size() && - list1.containsAll(list2) && - list2.containsAll(list1) - ); + list1.size() == list2.size() + && list1.containsAll(list2) + && list2.containsAll(list1)); org.junit.Assert.assertFalse( - list1.size() == list3.size() && - list1.containsAll(list3) && - list3.containsAll(list1) - ); + list1.size() == list3.size() + && list1.containsAll(list3) + && list3.containsAll(list1)); } public void usingAssertJ() { @@ -64,4 +59,4 @@ public static void main(String[] a) { asserter.usingHamcrest(); asserter.usingApacheCommons(); } -} \ No newline at end of file +} diff --git a/java-collections/src/main/java/com/amitph/java/collections/set/HashSetInitializer.java b/java-collections/src/main/java/com/amitph/java/collections/set/HashSetInitializer.java index a3be4f9..b9fe1c7 100644 --- a/java-collections/src/main/java/com/amitph/java/collections/set/HashSetInitializer.java +++ b/java-collections/src/main/java/com/amitph/java/collections/set/HashSetInitializer.java @@ -2,7 +2,6 @@ import com.google.common.collect.ImmutableSet; import com.google.common.collect.Sets; - import java.util.Collections; import java.util.HashSet; import java.util.List; @@ -25,11 +24,11 @@ public void initializeJavaHashSet() { } public void initializeJavaHashSetFromList() { - Map map = Map.of( - "color", "black", - "drink", "coffee", - "shape", "slim" - ); + Map map = + Map.of( + "color", "black", + "drink", "coffee", + "shape", "slim"); Set set = new HashSet<>(map.keySet()); set.forEach(System.out::println); @@ -43,29 +42,31 @@ public void initializeJavaHashSetFromCollection() { } public void initializeJavaHashSetFromCollectorsToSet() { - Set shoppingSet = Stream.of("Bread", "Milk", "Eggs", "Cheese", "Butter") - .collect(Collectors.toSet()); + Set shoppingSet = + Stream.of("Bread", "Milk", "Eggs", "Cheese", "Butter").collect(Collectors.toSet()); shoppingSet.forEach(System.out::println); } public void initializeJavaHashSetFromCollectorsToCollection() { - Set shoppingSet = Stream.of("Bread", "Milk", "Eggs", "Cheese", "Butter") - .collect(Collectors.toCollection(HashSet::new)); + Set shoppingSet = + Stream.of("Bread", "Milk", "Eggs", "Cheese", "Butter") + .collect(Collectors.toCollection(HashSet::new)); shoppingSet.forEach(System.out::println); } public void initializeJavaHashSetUsingAnonymousSubClass() { - Set shoppingSet = new HashSet<>() { - { - add("Bread"); - add("Milk"); - add("Eggs"); - add("Cheese"); - add("Butter"); - } - }; + Set shoppingSet = + new HashSet<>() { + { + add("Bread"); + add("Milk"); + add("Eggs"); + add("Cheese"); + add("Butter"); + } + }; shoppingSet.forEach(System.out::println); } @@ -140,4 +141,4 @@ public static void main(String[] a) { System.out.println("Initialize immutable HashSet using Plain Java"); initializer.initializeImmutableHashSetWithPlainJava(); } -} \ No newline at end of file +} diff --git a/java-collections/src/main/java/com/amitph/java/collections/set/HashSetSorter.java b/java-collections/src/main/java/com/amitph/java/collections/set/HashSetSorter.java index ae3bdd1..e4cf3da 100644 --- a/java-collections/src/main/java/com/amitph/java/collections/set/HashSetSorter.java +++ b/java-collections/src/main/java/com/amitph/java/collections/set/HashSetSorter.java @@ -26,9 +26,8 @@ public void usingTreeSet() { public void usingStreamSorted() { Set hashSet = Set.of(3, 2, 5, 4, 1, 6, 8, 7); - Set linkedHashSet = hashSet.stream() - .sorted() - .collect(Collectors.toCollection(LinkedHashSet::new)); + Set linkedHashSet = + hashSet.stream().sorted().collect(Collectors.toCollection(LinkedHashSet::new)); System.out.println(linkedHashSet); } @@ -44,4 +43,4 @@ public static void main(String[] a) { System.out.println("Using Stream.sorted()"); setSorter.usingStreamSorted(); } -} \ No newline at end of file +} diff --git a/java-collections/src/main/java/com/amitph/java/collections/set/SetsDifferenceFinder.java b/java-collections/src/main/java/com/amitph/java/collections/set/SetsDifferenceFinder.java index 4cf3d7c..441c2d9 100644 --- a/java-collections/src/main/java/com/amitph/java/collections/set/SetsDifferenceFinder.java +++ b/java-collections/src/main/java/com/amitph/java/collections/set/SetsDifferenceFinder.java @@ -1,11 +1,10 @@ package com.amitph.java.collections.set; import com.google.common.collect.Sets; -import org.apache.commons.collections4.CollectionUtils; - import java.util.HashSet; import java.util.Set; import java.util.stream.Collectors; +import org.apache.commons.collections4.CollectionUtils; public class SetsDifferenceFinder { private final Set one = Set.of("Ray", "Tim", "Leo", "Bee"); @@ -19,9 +18,8 @@ public void usingPlainJava() { } public void usingStreams() { - Set difference = one.stream() - .filter(e -> !two.contains(e)) - .collect(Collectors.toSet()); + Set difference = + one.stream().filter(e -> !two.contains(e)).collect(Collectors.toSet()); System.out.println(difference); } @@ -35,7 +33,7 @@ public void usingGuava() { System.out.println(differences); } - public void symmetricDifferenceUsingApacheCommons(){ + public void symmetricDifferenceUsingApacheCommons() { Set differences = new HashSet<>(CollectionUtils.disjunction(one, two)); System.out.println(differences); } @@ -62,4 +60,4 @@ public static void main(String[] a) { System.out.println("Symmetric Difference with Apache Commons Collection:"); differenceFinder.symmetricDifferenceUsingApacheCommons(); } -} \ No newline at end of file +} diff --git a/java-core/src/main/java/com/amitph/java/core/abstraction/Circle.java b/java-core/src/main/java/com/amitph/java/core/abstraction/Circle.java index 190545f..cb1cd8a 100644 --- a/java-core/src/main/java/com/amitph/java/core/abstraction/Circle.java +++ b/java-core/src/main/java/com/amitph/java/core/abstraction/Circle.java @@ -12,4 +12,4 @@ public Circle(Double radius, DrawingService drawingService) { public Double calculateArea() { return radius * radius * Math.PI; } -} \ No newline at end of file +} diff --git a/java-core/src/main/java/com/amitph/java/core/abstraction/ConsoleLogger.java b/java-core/src/main/java/com/amitph/java/core/abstraction/ConsoleLogger.java index f9fdde2..d2aeced 100644 --- a/java-core/src/main/java/com/amitph/java/core/abstraction/ConsoleLogger.java +++ b/java-core/src/main/java/com/amitph/java/core/abstraction/ConsoleLogger.java @@ -9,4 +9,4 @@ public ConsoleLogger(String className) { public void print(String msg) { // Write To Console } -} \ No newline at end of file +} diff --git a/java-core/src/main/java/com/amitph/java/core/abstraction/DrawingService.java b/java-core/src/main/java/com/amitph/java/core/abstraction/DrawingService.java index 46f201e..0e8eb1f 100644 --- a/java-core/src/main/java/com/amitph/java/core/abstraction/DrawingService.java +++ b/java-core/src/main/java/com/amitph/java/core/abstraction/DrawingService.java @@ -4,4 +4,4 @@ public class DrawingService { public void draw(Shape shape) { System.out.println("Drawing the area + " + shape.calculateArea()); } -} \ No newline at end of file +} diff --git a/java-core/src/main/java/com/amitph/java/core/abstraction/FileLogger.java b/java-core/src/main/java/com/amitph/java/core/abstraction/FileLogger.java index d982fec..1ce5ce7 100644 --- a/java-core/src/main/java/com/amitph/java/core/abstraction/FileLogger.java +++ b/java-core/src/main/java/com/amitph/java/core/abstraction/FileLogger.java @@ -10,4 +10,4 @@ public FileLogger(String className) { public void print(String msg) { // write to file } -} \ No newline at end of file +} diff --git a/java-core/src/main/java/com/amitph/java/core/abstraction/Logger.java b/java-core/src/main/java/com/amitph/java/core/abstraction/Logger.java index d635f38..929f235 100644 --- a/java-core/src/main/java/com/amitph/java/core/abstraction/Logger.java +++ b/java-core/src/main/java/com/amitph/java/core/abstraction/Logger.java @@ -21,4 +21,4 @@ public String getLogPattern() { public String getClassName() { return className; } -} \ No newline at end of file +} diff --git a/java-core/src/main/java/com/amitph/java/core/abstraction/Main.java b/java-core/src/main/java/com/amitph/java/core/abstraction/Main.java index e41d91a..fe744d0 100644 --- a/java-core/src/main/java/com/amitph/java/core/abstraction/Main.java +++ b/java-core/src/main/java/com/amitph/java/core/abstraction/Main.java @@ -8,4 +8,4 @@ public static void main(String[] arg) { shape = new Square(10.1, new DrawingService()); System.out.println("Square area: " + shape.calculateArea()); } -} \ No newline at end of file +} diff --git a/java-core/src/main/java/com/amitph/java/core/abstraction/Shape.java b/java-core/src/main/java/com/amitph/java/core/abstraction/Shape.java index ae655a6..4efad35 100644 --- a/java-core/src/main/java/com/amitph/java/core/abstraction/Shape.java +++ b/java-core/src/main/java/com/amitph/java/core/abstraction/Shape.java @@ -12,4 +12,4 @@ public Shape(DrawingService drawingService) { public void draw() { drawingService.draw(this); } -} \ No newline at end of file +} diff --git a/java-core/src/main/java/com/amitph/java/core/abstraction/Square.java b/java-core/src/main/java/com/amitph/java/core/abstraction/Square.java index cca3b8f..f43d1e6 100644 --- a/java-core/src/main/java/com/amitph/java/core/abstraction/Square.java +++ b/java-core/src/main/java/com/amitph/java/core/abstraction/Square.java @@ -12,4 +12,4 @@ public Square(Double side, DrawingService drawingService) { public Double calculateArea() { return side * side; } -} \ No newline at end of file +} diff --git a/java-core/src/main/java/com/amitph/java/core/interfaces/CanSumUp.java b/java-core/src/main/java/com/amitph/java/core/interfaces/CanSumUp.java index 742418f..b23ead2 100644 --- a/java-core/src/main/java/com/amitph/java/core/interfaces/CanSumUp.java +++ b/java-core/src/main/java/com/amitph/java/core/interfaces/CanSumUp.java @@ -14,4 +14,4 @@ default Double addDoubles(Double x, Double y) { private void logAddNumbers(Number x, Number y) { System.out.println("Adding: " + x + ", " + y); } -} \ No newline at end of file +} diff --git a/java-core/src/main/java/com/amitph/java/core/interfaces/Circle.java b/java-core/src/main/java/com/amitph/java/core/interfaces/Circle.java index ed691dc..3d1b440 100644 --- a/java-core/src/main/java/com/amitph/java/core/interfaces/Circle.java +++ b/java-core/src/main/java/com/amitph/java/core/interfaces/Circle.java @@ -16,4 +16,4 @@ public Double calculateArea() { public int compareTo(Circle o) { return this.radius.compareTo(o.radius); } -} \ No newline at end of file +} diff --git a/java-core/src/main/java/com/amitph/java/core/interfaces/Drone.java b/java-core/src/main/java/com/amitph/java/core/interfaces/Drone.java index 25bb75c..6d757c9 100644 --- a/java-core/src/main/java/com/amitph/java/core/interfaces/Drone.java +++ b/java-core/src/main/java/com/amitph/java/core/interfaces/Drone.java @@ -11,4 +11,4 @@ public void fly() { public void rest() { System.out.println("I am drone; I need rest too"); } -} \ No newline at end of file +} diff --git a/java-core/src/main/java/com/amitph/java/core/interfaces/ElectronicFlyingToy.java b/java-core/src/main/java/com/amitph/java/core/interfaces/ElectronicFlyingToy.java index e7cb9ce..43e8618 100644 --- a/java-core/src/main/java/com/amitph/java/core/interfaces/ElectronicFlyingToy.java +++ b/java-core/src/main/java/com/amitph/java/core/interfaces/ElectronicFlyingToy.java @@ -4,4 +4,4 @@ public abstract class ElectronicFlyingToy implements FlyingToy { public abstract void tunOn(); public abstract void turnOff(); -} \ No newline at end of file +} diff --git a/java-core/src/main/java/com/amitph/java/core/interfaces/Employee.java b/java-core/src/main/java/com/amitph/java/core/interfaces/Employee.java index 8329f70..e69fe50 100644 --- a/java-core/src/main/java/com/amitph/java/core/interfaces/Employee.java +++ b/java-core/src/main/java/com/amitph/java/core/interfaces/Employee.java @@ -9,4 +9,4 @@ public class Employee implements Comparable { public int compareTo(Employee o) { return this.id.compareTo(o.id); } -} \ No newline at end of file +} diff --git a/java-core/src/main/java/com/amitph/java/core/interfaces/FlyingCow.java b/java-core/src/main/java/com/amitph/java/core/interfaces/FlyingCow.java index cf98e83..e5d60d1 100644 --- a/java-core/src/main/java/com/amitph/java/core/interfaces/FlyingCow.java +++ b/java-core/src/main/java/com/amitph/java/core/interfaces/FlyingCow.java @@ -10,4 +10,4 @@ public void fly() { public void rest() { System.out.println("I am cow; I need rest too"); } -} \ No newline at end of file +} diff --git a/java-core/src/main/java/com/amitph/java/core/interfaces/FlyingToy.java b/java-core/src/main/java/com/amitph/java/core/interfaces/FlyingToy.java index 6b0ea48..68c444b 100644 --- a/java-core/src/main/java/com/amitph/java/core/interfaces/FlyingToy.java +++ b/java-core/src/main/java/com/amitph/java/core/interfaces/FlyingToy.java @@ -4,4 +4,4 @@ public interface FlyingToy { void fly(); void rest(); -} \ No newline at end of file +} diff --git a/java-core/src/main/java/com/amitph/java/core/interfaces/FlyingToyFactory.java b/java-core/src/main/java/com/amitph/java/core/interfaces/FlyingToyFactory.java index 7c11b08..774bc03 100644 --- a/java-core/src/main/java/com/amitph/java/core/interfaces/FlyingToyFactory.java +++ b/java-core/src/main/java/com/amitph/java/core/interfaces/FlyingToyFactory.java @@ -9,4 +9,4 @@ public FlyingToy getFlyingToy() { } return new Drone(); } -} \ No newline at end of file +} diff --git a/java-core/src/main/java/com/amitph/java/core/interfaces/FlyingToyWithDefault.java b/java-core/src/main/java/com/amitph/java/core/interfaces/FlyingToyWithDefault.java index 85d7318..8898f1e 100644 --- a/java-core/src/main/java/com/amitph/java/core/interfaces/FlyingToyWithDefault.java +++ b/java-core/src/main/java/com/amitph/java/core/interfaces/FlyingToyWithDefault.java @@ -4,7 +4,6 @@ public interface FlyingToyWithDefault { void fly(); default void rest() { - System.out.println("If not told explicitly, " + - "I rest like this"); + System.out.println("If not told explicitly, " + "I rest like this"); } -} \ No newline at end of file +} diff --git a/java-core/src/main/java/com/amitph/java/core/interfaces/Shape.java b/java-core/src/main/java/com/amitph/java/core/interfaces/Shape.java index 69883d3..350c53b 100644 --- a/java-core/src/main/java/com/amitph/java/core/interfaces/Shape.java +++ b/java-core/src/main/java/com/amitph/java/core/interfaces/Shape.java @@ -7,4 +7,4 @@ public abstract class Shape { public void draw() { System.out.println("Drawing"); } -} \ No newline at end of file +} diff --git a/java-core/src/main/java/com/amitph/java/core/interfaces/mi/Device.java b/java-core/src/main/java/com/amitph/java/core/interfaces/mi/Device.java index d92a0a1..5b65c12 100644 --- a/java-core/src/main/java/com/amitph/java/core/interfaces/mi/Device.java +++ b/java-core/src/main/java/com/amitph/java/core/interfaces/mi/Device.java @@ -4,4 +4,4 @@ public interface Device { default void start() { System.out.println("Device is starting"); } -} \ No newline at end of file +} diff --git a/java-core/src/main/java/com/amitph/java/core/interfaces/mi/Gadget.java b/java-core/src/main/java/com/amitph/java/core/interfaces/mi/Gadget.java index 7a79069..95fc902 100644 --- a/java-core/src/main/java/com/amitph/java/core/interfaces/mi/Gadget.java +++ b/java-core/src/main/java/com/amitph/java/core/interfaces/mi/Gadget.java @@ -4,4 +4,4 @@ public abstract class Gadget { public void start() { System.out.println("Gadget is starting"); } -} \ No newline at end of file +} diff --git a/java-core/src/main/java/com/amitph/java/core/interfaces/mi/Phone.java b/java-core/src/main/java/com/amitph/java/core/interfaces/mi/Phone.java index 4c3d245..9c4e475 100644 --- a/java-core/src/main/java/com/amitph/java/core/interfaces/mi/Phone.java +++ b/java-core/src/main/java/com/amitph/java/core/interfaces/mi/Phone.java @@ -1,7 +1,7 @@ package com.amitph.java.core.interfaces.mi; public interface Phone { - default void start(){ + default void start() { System.out.println("Phone is starting"); } -} \ No newline at end of file +} diff --git a/java-core/src/main/java/com/amitph/java/core/interfaces/mi/SmartGadget.java b/java-core/src/main/java/com/amitph/java/core/interfaces/mi/SmartGadget.java index 9322ac7..9e1e125 100644 --- a/java-core/src/main/java/com/amitph/java/core/interfaces/mi/SmartGadget.java +++ b/java-core/src/main/java/com/amitph/java/core/interfaces/mi/SmartGadget.java @@ -1,6 +1,3 @@ package com.amitph.java.core.interfaces.mi; -public class SmartGadget - extends Gadget - implements SmartDevice, Phone { -} \ No newline at end of file +public class SmartGadget extends Gadget implements SmartDevice, Phone {} diff --git a/java-core/src/main/java/com/amitph/java/core/interfaces/privateint/Calculator.java b/java-core/src/main/java/com/amitph/java/core/interfaces/privateint/Calculator.java index 401e4b4..2f96096 100644 --- a/java-core/src/main/java/com/amitph/java/core/interfaces/privateint/Calculator.java +++ b/java-core/src/main/java/com/amitph/java/core/interfaces/privateint/Calculator.java @@ -12,6 +12,6 @@ default int subtract(int x, int y) { } private void logMessage(String msg) { - //Log it + // Log it } -} \ No newline at end of file +} diff --git a/java-core/src/main/java/com/amitph/java/core/interfaces/staticint/Calculator.java b/java-core/src/main/java/com/amitph/java/core/interfaces/staticint/Calculator.java index 23f5489..20f95b7 100644 --- a/java-core/src/main/java/com/amitph/java/core/interfaces/staticint/Calculator.java +++ b/java-core/src/main/java/com/amitph/java/core/interfaces/staticint/Calculator.java @@ -12,10 +12,10 @@ static int subtract(int x, int y) { } private static void logMessage(String msg) { - //Log it + // Log it } static void main(String[] a) { System.out.println("Main. Executing from an interface"); } -} \ No newline at end of file +} diff --git a/java-core/src/main/java/com/amitph/java/core/interfaces/staticint/CalculatorImpl.java b/java-core/src/main/java/com/amitph/java/core/interfaces/staticint/CalculatorImpl.java index 4a31de2..3ef0a60 100644 --- a/java-core/src/main/java/com/amitph/java/core/interfaces/staticint/CalculatorImpl.java +++ b/java-core/src/main/java/com/amitph/java/core/interfaces/staticint/CalculatorImpl.java @@ -1,4 +1,3 @@ package com.amitph.java.core.interfaces.staticint; -public class CalculatorImpl implements Calculator{ -} \ No newline at end of file +public class CalculatorImpl implements Calculator {} diff --git a/java-io/src/main/java/com/amitph/java/io/InputStreamToByteArray.java b/java-io/src/main/java/com/amitph/java/io/InputStreamToByteArray.java index e264e81..83ca5ca 100644 --- a/java-io/src/main/java/com/amitph/java/io/InputStreamToByteArray.java +++ b/java-io/src/main/java/com/amitph/java/io/InputStreamToByteArray.java @@ -1,14 +1,13 @@ package com.amitph.java.io; -import com.google.common.io.ByteStreams; -import org.apache.commons.io.IOUtils; +import static java.nio.charset.StandardCharsets.UTF_8; +import com.google.common.io.ByteStreams; import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; import java.io.IOException; import java.io.InputStream; - -import static java.nio.charset.StandardCharsets.UTF_8; +import org.apache.commons.io.IOUtils; public class InputStreamToByteArray { public InputStream toInputStream(byte[] bytes) { @@ -27,8 +26,7 @@ public byte[] toByteArrayManually(InputStream inputStream) throws IOException { byte[] bucket = new byte[1024]; int nReadBytes; - while ((nReadBytes = inputStream - .read(bucket, 0, bucket.length)) != -1) { + while ((nReadBytes = inputStream.read(bucket, 0, bucket.length)) != -1) { byteArrayOutputStream.write(bucket, 0, nReadBytes); } @@ -43,13 +41,14 @@ public byte[] toByteArrayUsingGuava(InputStream inputStream) throws IOException return ByteStreams.toByteArray(inputStream); } - public static void main(String[] a) throws IOException { InputStreamToByteArray converter = new InputStreamToByteArray(); - byte[] input = """ + byte[] input = + """ "this sample text that we will convert to a byte[] then to InputStream" - """.getBytes(UTF_8); + """ + .getBytes(UTF_8); InputStream inputStream1 = converter.toInputStream(input); System.out.println("InputStream to byte[] using plain Java"); @@ -67,4 +66,4 @@ public static void main(String[] a) throws IOException { System.out.println("InputStream to byte[] using plain Guava"); System.out.println(new String(converter.toByteArrayUsingGuava(inputStream4))); } -} \ No newline at end of file +} diff --git a/java-io/src/main/java/com/amitph/java/io/download/file/FileDownloader.java b/java-io/src/main/java/com/amitph/java/io/download/file/FileDownloader.java index 8c86ca2..6db2c7d 100644 --- a/java-io/src/main/java/com/amitph/java/io/download/file/FileDownloader.java +++ b/java-io/src/main/java/com/amitph/java/io/download/file/FileDownloader.java @@ -1,7 +1,5 @@ package com.amitph.java.io.download.file; -import org.apache.commons.io.FileUtils; - import java.io.BufferedInputStream; import java.io.File; import java.io.FileOutputStream; @@ -21,10 +19,12 @@ import java.nio.file.Paths; import java.util.concurrent.ExecutionException; import java.util.concurrent.Future; +import org.apache.commons.io.FileUtils; public class FileDownloader { - public static void main(String[] a) throws IOException, URISyntaxException, InterruptedException, ExecutionException { + public static void main(String[] a) + throws IOException, URISyntaxException, InterruptedException, ExecutionException { FileDownloader fileDownloader = new FileDownloader(); String from = "https://www.google.com"; String to = "/temp/file/path"; @@ -39,11 +39,9 @@ public static void main(String[] a) throws IOException, URISyntaxException, Inte public void usingPlainJava(String from, String to) throws IOException { URL url = new URL(from); - try ( - InputStream inputStream = url.openStream(); + try (InputStream inputStream = url.openStream(); BufferedInputStream bufferedInputStream = new BufferedInputStream(inputStream); - FileOutputStream fileOutputStream = new FileOutputStream(to) - ) { + FileOutputStream fileOutputStream = new FileOutputStream(to)) { byte[] bucket = new byte[2048]; int numBytesRead; @@ -62,48 +60,41 @@ public void usingFiles(String from, String to) throws IOException { public void usingNio(String from, String to) throws IOException { URL url = new URL(from); - try ( - ReadableByteChannel inputChannel = Channels.newChannel(url.openStream()); - + try (ReadableByteChannel inputChannel = Channels.newChannel(url.openStream()); FileOutputStream fileOutputStream = new FileOutputStream(to); - FileChannel outputChannel = fileOutputStream.getChannel() - ) { + FileChannel outputChannel = fileOutputStream.getChannel()) { outputChannel.transferFrom(inputChannel, 0, Long.MAX_VALUE); } } - public void usingHttpClient(String from, String to) throws IOException, URISyntaxException, InterruptedException { + public void usingHttpClient(String from, String to) + throws IOException, URISyntaxException, InterruptedException { HttpClient httpClient = HttpClient.newBuilder().build(); - HttpRequest httpRequest = HttpRequest - .newBuilder() - .uri(new URI(from)) - .GET() - .build(); + HttpRequest httpRequest = HttpRequest.newBuilder().uri(new URI(from)).GET().build(); - HttpResponse response = httpClient.send(httpRequest, responseInfo -> HttpResponse.BodySubscribers.ofInputStream()); + HttpResponse response = + httpClient.send( + httpRequest, responseInfo -> HttpResponse.BodySubscribers.ofInputStream()); Files.copy(response.body(), Paths.get(to)); } - public void usingHttpClientAsync(String from, String to) throws IOException, URISyntaxException, InterruptedException, ExecutionException { + public void usingHttpClientAsync(String from, String to) + throws IOException, URISyntaxException, InterruptedException, ExecutionException { HttpClient httpClient = HttpClient.newBuilder().build(); - HttpRequest httpRequest = HttpRequest - .newBuilder() - .uri(new URI(from)) - .GET() - .build(); + HttpRequest httpRequest = HttpRequest.newBuilder().uri(new URI(from)).GET().build(); - Future futureInputStream = httpClient - .sendAsync(httpRequest, HttpResponse.BodyHandlers.ofInputStream()) - .thenApply(HttpResponse::body); + Future futureInputStream = + httpClient + .sendAsync(httpRequest, HttpResponse.BodyHandlers.ofInputStream()) + .thenApply(HttpResponse::body); InputStream inputStream = futureInputStream.get(); Files.copy(inputStream, Path.of(to)); } - public void usingCommonsIo(String from, String to) throws IOException { URL url = new URL(from); FileUtils.copyURLToFile(url, new File(to)); } -} \ No newline at end of file +} diff --git a/java-io/src/main/java/com/amitph/java/io/download/file/JsonReader.java b/java-io/src/main/java/com/amitph/java/io/download/file/JsonReader.java index 27da629..45df022 100644 --- a/java-io/src/main/java/com/amitph/java/io/download/file/JsonReader.java +++ b/java-io/src/main/java/com/amitph/java/io/download/file/JsonReader.java @@ -1,16 +1,15 @@ package com.amitph.java.io.download.file; +import static java.nio.charset.StandardCharsets.UTF_8; + import com.amitph.java.io.download.file.model.Response; import com.fasterxml.jackson.databind.JsonNode; import com.fasterxml.jackson.databind.ObjectMapper; -import org.apache.commons.io.IOUtils; - import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.net.URL; - -import static java.nio.charset.StandardCharsets.UTF_8; +import org.apache.commons.io.IOUtils; public class JsonReader { public static void main(String[] arg) throws IOException { @@ -26,7 +25,8 @@ public String readJsonStringUsingPlainJava(String from) throws IOException { URL url = new URL(from); StringBuilder builder = new StringBuilder(); - try (BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(url.openStream(), UTF_8))) { + try (BufferedReader bufferedReader = + new BufferedReader(new InputStreamReader(url.openStream(), UTF_8))) { String str; while ((str = bufferedReader.readLine()) != null) { builder.append(str); @@ -47,4 +47,4 @@ public JsonNode readJsonObjectUsingJackson(String from) throws IOException { public Response readJsonCustomObjectUsingJackson(String from) throws IOException { return new ObjectMapper().readValue(new URL(from), Response.class); } -} \ No newline at end of file +} diff --git a/java-io/src/main/java/com/amitph/java/io/download/file/model/Response.java b/java-io/src/main/java/com/amitph/java/io/download/file/model/Response.java index dde5bc2..1d623b1 100644 --- a/java-io/src/main/java/com/amitph/java/io/download/file/model/Response.java +++ b/java-io/src/main/java/com/amitph/java/io/download/file/model/Response.java @@ -1,12 +1,11 @@ package com.amitph.java.io.download.file.model; +import java.util.ArrayList; +import java.util.List; import lombok.Getter; import lombok.Setter; import lombok.ToString; -import java.util.ArrayList; -import java.util.List; - @Getter @Setter @ToString @@ -23,4 +22,4 @@ class Info { private float results; private float page; private String version; -} \ No newline at end of file +} diff --git a/java-streams/src/main/java/com/amitph/java/streams/AccessStreamsLastElement.java b/java-streams/src/main/java/com/amitph/java/streams/AccessStreamsLastElement.java index b00222e..44e5b15 100644 --- a/java-streams/src/main/java/com/amitph/java/streams/AccessStreamsLastElement.java +++ b/java-streams/src/main/java/com/amitph/java/streams/AccessStreamsLastElement.java @@ -1,27 +1,20 @@ package com.amitph.java.streams; import com.google.common.collect.Streams; - import java.util.stream.Stream; public class AccessStreamsLastElement { public T usingReduction(Stream stream) { - return stream - .reduce((t, t2) -> t2) - .orElse(null); + return stream.reduce((t, t2) -> t2).orElse(null); } public T usingGuava(Stream stream) { - return Streams.findLast(stream) - .orElse(null); + return Streams.findLast(stream).orElse(null); } public T usingSkip(Stream stream) { long count = stream.count(); - return stream - .skip(count) - .findFirst() - .orElse(null); + return stream.skip(count).findFirst().orElse(null); } public static void main(String[] args) { diff --git a/java-streams/src/main/java/com/amitph/java/streams/Deduplicator.java b/java-streams/src/main/java/com/amitph/java/streams/Deduplicator.java index 1424331..094a07e 100644 --- a/java-streams/src/main/java/com/amitph/java/streams/Deduplicator.java +++ b/java-streams/src/main/java/com/amitph/java/streams/Deduplicator.java @@ -1,15 +1,14 @@ package com.amitph.java.streams; -import lombok.Data; -import lombok.Getter; -import lombok.RequiredArgsConstructor; +import static java.util.stream.Collectors.toMap; import java.util.Map; import java.util.function.Function; import java.util.stream.Collectors; import java.util.stream.Stream; - -import static java.util.stream.Collectors.toMap; +import lombok.Data; +import lombok.Getter; +import lombok.RequiredArgsConstructor; public class Deduplicator { public static void main(String[] ar) { @@ -20,23 +19,19 @@ public static void main(String[] ar) { .deduplicateUsingDistinct(Stream.of("a", "b", "c", "b", "d", "a", "d")) .forEach(System.out::println); - System.out.println(); System.out.println("Remove duplicate elements of a Stream - using Set"); deduplicator .deduplicateUsingSet(Stream.of("a", "b", "c", "b", "d", "a", "d")) .forEach(System.out::println); - System.out.println(); System.out.println("Remove duplicate elements of a Stream of custom objects"); - deduplicator - .deduplicateUsingDistinct(getStudentStream()) - .forEach(System.out::println); - + deduplicator.deduplicateUsingDistinct(getStudentStream()).forEach(System.out::println); System.out.println(); - System.out.println("Remove duplicate elements of a Stream of custom objects by specific fields"); + System.out.println( + "Remove duplicate elements of a Stream of custom objects by specific fields"); Stream wrapperStream = getStudentStream().map(StudentWrapper::new); deduplicator @@ -46,7 +41,8 @@ public static void main(String[] ar) { System.out.println(); System.out.println("Counting the duplicates in a Stream"); - deduplicator.groupByCount(Stream.of(22, 31, 22, 34, 25, 31, 34)) + deduplicator + .groupByCount(Stream.of(22, 31, 22, 34, 25, 31, 34)) .entrySet() .forEach(System.out::println); } @@ -56,14 +52,11 @@ public Stream deduplicateUsingDistinct(Stream stream) { } public Stream deduplicateUsingSet(Stream stream) { - return stream - .collect(Collectors.toSet()) - .stream(); + return stream.collect(Collectors.toSet()).stream(); } public Map groupByCount(Stream stream) { - return stream - .collect(toMap(Function.identity(), x -> 1L, Long::sum)); + return stream.collect(toMap(Function.identity(), x -> 1L, Long::sum)); } private static Stream getStudentStream() { @@ -71,8 +64,7 @@ private static Stream getStudentStream() { new Student(1L, "Bob", "Jack", 12), new Student(2L, "Nick", "Stephen", 14), new Student(3L, "Bob", "Holden", 14), - new Student(2L, "Nick", "Stephen", 14) - ); + new Student(2L, "Nick", "Stephen", 14)); } } @@ -108,12 +100,11 @@ public boolean equals(Object other) { if (!(other instanceof StudentWrapper wrapper2)) { return false; } - return wrapper2.student.getFirstName() - .equals(this.student.getFirstName()); + return wrapper2.student.getFirstName().equals(this.student.getFirstName()); } @Override public int hashCode() { return student.getFirstName().hashCode(); } -} \ No newline at end of file +} diff --git a/java-streams/src/main/java/com/amitph/java/streams/ElementAppender.java b/java-streams/src/main/java/com/amitph/java/streams/ElementAppender.java index f6437dc..ff46271 100644 --- a/java-streams/src/main/java/com/amitph/java/streams/ElementAppender.java +++ b/java-streams/src/main/java/com/amitph/java/streams/ElementAppender.java @@ -1,5 +1,7 @@ package com.amitph.java.streams; +import static java.util.stream.Collectors.toList; + import java.util.Iterator; import java.util.List; import java.util.Spliterator; @@ -7,8 +9,6 @@ import java.util.stream.Stream; import java.util.stream.StreamSupport; -import static java.util.stream.Collectors.toList; - public class ElementAppender { public Stream appendElement(Stream stream, T newElement) { return Stream.concat(stream, Stream.of(newElement)); @@ -29,9 +29,8 @@ public Stream insertElement_usingSpliterator(Stream stream, T newEleme Iterator iterator = Spliterators.iterator(spliterator); - Stream stream1 = Stream.concat( - Stream.generate(iterator::next).limit(index), - Stream.of(newElement)); + Stream stream1 = + Stream.concat(Stream.generate(iterator::next).limit(index), Stream.of(newElement)); Stream stream2 = StreamSupport.stream(spliterator, false); return Stream.concat(stream1, stream2); @@ -47,11 +46,13 @@ public static void main(String[] args) { elementAppender.prependElement(Stream.of(1, 2, 6, 7), 0).forEach(System.out::println); System.out.println("Insert an element in a Stream using List"); - elementAppender.insertElement_usingList(Stream.of(1, 2, 6, 7), 3, 2) + elementAppender + .insertElement_usingList(Stream.of(1, 2, 6, 7), 3, 2) .forEach(System.out::println); System.out.println("Insert an element in a Stream using Spliterator"); - elementAppender.insertElement_usingSpliterator(Stream.of(1, 2, 6, 7), 3, 2) + elementAppender + .insertElement_usingSpliterator(Stream.of(1, 2, 6, 7), 3, 2) .forEach(System.out::println); } } diff --git a/java-streams/src/main/java/com/amitph/java/streams/MergeStreams.java b/java-streams/src/main/java/com/amitph/java/streams/MergeStreams.java index 9d9e5b8..0270899 100644 --- a/java-streams/src/main/java/com/amitph/java/streams/MergeStreams.java +++ b/java-streams/src/main/java/com/amitph/java/streams/MergeStreams.java @@ -1,10 +1,9 @@ package com.amitph.java.streams; +import java.util.stream.Stream; import one.util.streamex.StreamEx; import org.jooq.lambda.Seq; -import java.util.stream.Stream; - public class MergeStreams { public void mergeTwoStreamsWithJavaConcat() { Stream stream1 = Stream.of(1, 2, 3); @@ -21,8 +20,8 @@ public void mergeMultipleStreamsWithJavaConcat() { Stream stream3 = Stream.of(5, 6); Stream stream4 = Stream.of(7, 8); - Stream merged = Stream.concat(stream1, Stream.concat(stream2, - Stream.concat(stream3, stream4))); + Stream merged = + Stream.concat(stream1, Stream.concat(stream2, Stream.concat(stream3, stream4))); merged.forEach(System.out::println); } @@ -33,9 +32,7 @@ public void mergeMultipleStreamsWithJavaFlatMap() { Stream stream3 = Stream.of(5, 6); Stream stream4 = Stream.of(7, 8); - Stream merged = - Stream.of(stream1, stream2, stream3, stream4) - .flatMap(x -> x); + Stream merged = Stream.of(stream1, stream2, stream3, stream4).flatMap(x -> x); merged.forEach(System.out::println); } @@ -45,9 +42,7 @@ public void mergeMultipleStreamsWithStreamExAppend() { Stream stream2 = Stream.of(4, 5); Stream stream3 = Stream.of(7, 8); - Stream merged = StreamEx.of(stream1) - .append(stream2) - .append(stream3); + Stream merged = StreamEx.of(stream1).append(stream2).append(stream3); merged.forEach(System.out::println); } @@ -57,9 +52,7 @@ public void mergeMultipleStreamsWithStreamExAppendPrepend() { Stream stream2 = Stream.of(1, 2); Stream stream3 = Stream.of(6, 7); - Stream merged = StreamEx.of(stream1) - .append(stream3) - .prepend(stream2); + Stream merged = StreamEx.of(stream1).append(stream3).prepend(stream2); merged.forEach(System.out::println); } @@ -69,9 +62,7 @@ public void mergeMultipleStreamsWithJoolAppend() { Stream stream2 = Stream.of(4, 5); Stream stream3 = Stream.of(7, 8); - Stream merged = Seq.ofType(stream1, Integer.class) - .append(stream2) - .append(stream3); + Stream merged = Seq.ofType(stream1, Integer.class).append(stream2).append(stream3); merged.forEach(System.out::println); } @@ -81,9 +72,8 @@ public void mergeMultipleStreamsWithJoolAppendPrepend() { Stream stream2 = Stream.of(1, 2); Stream stream3 = Stream.of(6, 7); - Stream merged = Seq.ofType(stream1, Integer.class) - .append(stream3) - .prepend(stream2); + Stream merged = + Seq.ofType(stream1, Integer.class).append(stream3).prepend(stream2); merged.forEach(System.out::println); } diff --git a/java-streams/src/main/java/com/amitph/java/streams/PrediateNegater.java b/java-streams/src/main/java/com/amitph/java/streams/PrediateNegater.java index 5e78e2a..45de78b 100644 --- a/java-streams/src/main/java/com/amitph/java/streams/PrediateNegater.java +++ b/java-streams/src/main/java/com/amitph/java/streams/PrediateNegater.java @@ -1,37 +1,30 @@ package com.amitph.java.streams; -import lombok.Getter; -import lombok.RequiredArgsConstructor; -import lombok.ToString; - import java.util.function.Predicate; import java.util.stream.Stream; +import lombok.RequiredArgsConstructor; +import lombok.ToString; public class PrediateNegater { public void negatePredicateWithNegate() { Predicate evenNumber = i -> i % 2 == 0; - Stream.of(1, 2, 3, 4, 5, 6) - .filter(evenNumber.negate()) - .forEach(System.out::println); + Stream.of(1, 2, 3, 4, 5, 6).filter(evenNumber.negate()).forEach(System.out::println); } public void negatePredicateWithNot() { Predicate evenNumber = i -> i % 2 == 0; - Stream.of(1, 2, 3, 4, 5, 6) - .filter(Predicate.not(evenNumber)) - .forEach(System.out::println); + Stream.of(1, 2, 3, 4, 5, 6).filter(Predicate.not(evenNumber)).forEach(System.out::println); } public void negateMethodReferenceWithNot() { - Stream stream = Stream.of( - new Person("Bob", true), - new Person("Tom", false), - new Person("Cob", false), - new Person("Rick", true) - ); - - stream.filter(Predicate.not(Person::getAdult)) - .forEach(System.out::println); + Stream stream = + Stream.of( + new Person("Bob", true), + new Person("Tom", false), + new Person("Cob", false), + new Person("Rick", true)); + + stream.filter(Predicate.not(Person::getAdult)).forEach(System.out::println); } public static void main(String[] a) { @@ -61,4 +54,4 @@ public String getName() { public Boolean getAdult() { return adult; } -} \ No newline at end of file +} diff --git a/java-streams/src/main/java/com/amitph/java/streams/PredicateChain.java b/java-streams/src/main/java/com/amitph/java/streams/PredicateChain.java index 2b70a6a..2c5577e 100644 --- a/java-streams/src/main/java/com/amitph/java/streams/PredicateChain.java +++ b/java-streams/src/main/java/com/amitph/java/streams/PredicateChain.java @@ -6,26 +6,21 @@ public class PredicateChain { public void filterWithSinglePredicate() { List names = List.of("Maria", "Sandra", "Rachel", "Mary", "Michael"); - List output = names.stream() - .filter(n -> n.startsWith("M")) - .toList(); + List output = names.stream().filter(n -> n.startsWith("M")).toList(); output.forEach(System.out::println); } public void multipleFiltersWithPredicates() { List names = List.of("Maria", "Sandra", "Rachel", "Mary", "Michael"); - List output = names.stream() - .filter(n -> n.startsWith("M")) - .filter(n -> n.length() > 4) - .toList(); + List output = + names.stream().filter(n -> n.startsWith("M")).filter(n -> n.length() > 4).toList(); output.forEach(System.out::println); } public void filterWithTwoConditions() { List names = List.of("Maria", "Sandra", "Rachel", "Mary", "Michael"); - List output = names.stream() - .filter(n -> n.startsWith("M") && n.length() > 4) - .toList(); + List output = + names.stream().filter(n -> n.startsWith("M") && n.length() > 4).toList(); output.forEach(System.out::println); } @@ -34,9 +29,7 @@ public void filterWithPredicateAnd() { Predicate predicate2 = n -> n.length() > 4; List names = List.of("Maria", "Sandra", "Rachel", "Mary", "Michael"); - List output = names.stream() - .filter(predicate1.and(predicate2)) - .toList(); + List output = names.stream().filter(predicate1.and(predicate2)).toList(); output.forEach(System.out::println); } @@ -45,9 +38,7 @@ public void filterWithPredicateOr() { Predicate predicate2 = n -> n.length() > 4; List names = List.of("Maria", "Sandra", "Rachel", "Mary", "Michael"); - List output = names.stream() - .filter(predicate1.or(predicate2)) - .toList(); + List output = names.stream().filter(predicate1.or(predicate2)).toList(); output.forEach(System.out::println); } @@ -56,35 +47,30 @@ public void filterWithPredicateNegate() { Predicate predicate2 = n -> n.length() > 4; List names = List.of("Maria", "Sandra", "Rachel", "Mary", "Michael"); - List output = names.stream() - .filter(predicate1.negate().or(predicate2.negate())) - .toList(); + List output = + names.stream().filter(predicate1.negate().or(predicate2.negate())).toList(); output.forEach(System.out::println); } public void filterWithPredicateCollectionAnd() { - List> predicates = List.of( - n -> n.startsWith("M"), - n -> n.length() > 4 - ); + List> predicates = List.of(n -> n.startsWith("M"), n -> n.length() > 4); List names = List.of("Maria", "Sandra", "Rachel", "Mary", "Michael"); - List output = names.stream() - .filter(predicates.stream().reduce(p -> true, Predicate::and)) - .toList(); + List output = + names.stream() + .filter(predicates.stream().reduce(p -> true, Predicate::and)) + .toList(); output.forEach(System.out::println); } public void filterWithPredicateCollectionOr() { - List> predicates = List.of( - n -> n.startsWith("M"), - n -> n.length() > 4 - ); + List> predicates = List.of(n -> n.startsWith("M"), n -> n.length() > 4); List names = List.of("Maria", "Sandra", "Rachel", "Mary", "Michael"); - List output = names.stream() - .filter(predicates.stream().reduce(p -> false, Predicate::or)) - .toList(); + List output = + names.stream() + .filter(predicates.stream().reduce(p -> false, Predicate::or)) + .toList(); output.forEach(System.out::println); } @@ -115,4 +101,4 @@ public static void main(String[] a) { System.out.println("Filter with Collection of Predicates combined with or()"); predicateChain.filterWithPredicateCollectionOr(); } -} \ No newline at end of file +} diff --git a/java-streams/src/main/java/com/amitph/java/streams/RandomNumberStream.java b/java-streams/src/main/java/com/amitph/java/streams/RandomNumberStream.java index 2b63770..d837a21 100644 --- a/java-streams/src/main/java/com/amitph/java/streams/RandomNumberStream.java +++ b/java-streams/src/main/java/com/amitph/java/streams/RandomNumberStream.java @@ -9,38 +9,26 @@ public static void main(String[] a) throws NoSuchAlgorithmException { Random random = new Random(); System.out.println("Infinite Stream of Random Integers"); - random.ints() - .limit(7) - .forEach(System.out::print); + random.ints().limit(7).forEach(System.out::print); System.out.println(); System.out.println("Infinite Stream of Random Doubles"); - random.doubles() - .limit(7) - .forEach(System.out::print); + random.doubles().limit(7).forEach(System.out::print); System.out.println(); System.out.println("Infinite Stream of Random Longs"); - random.longs() - .limit(7) - .forEach(System.out::print); + random.longs().limit(7).forEach(System.out::print); System.out.println(); System.out.println("Infinite Stream of Secure Random Integers"); - SecureRandom.getInstanceStrong().ints() - .limit(7) - .forEach(System.out::print); + SecureRandom.getInstanceStrong().ints().limit(7).forEach(System.out::print); System.out.println(); System.out.println("Infinite Stream of Secure Random Doubles"); - SecureRandom.getInstanceStrong().doubles() - .limit(3) - .forEach(System.out::print); + SecureRandom.getInstanceStrong().doubles().limit(3).forEach(System.out::print); System.out.println(); System.out.println("Infinite Stream of Secure Random Longs"); - SecureRandom.getInstanceStrong().longs() - .limit(4) - .forEach(System.out::print); + SecureRandom.getInstanceStrong().longs().limit(4).forEach(System.out::print); } -} \ No newline at end of file +} diff --git a/java-streams/src/main/java/com/amitph/java/streams/SortCollections.java b/java-streams/src/main/java/com/amitph/java/streams/SortCollections.java index e34d4ea..8555b6d 100644 --- a/java-streams/src/main/java/com/amitph/java/streams/SortCollections.java +++ b/java-streams/src/main/java/com/amitph/java/streams/SortCollections.java @@ -1,7 +1,6 @@ package com.amitph.java.streams; import com.amitph.java.streams.model.Student; - import java.util.Collection; import java.util.Comparator; import java.util.HashMap; @@ -31,10 +30,7 @@ private void streamOfElements() { System.out.println(); System.out.println("Sorting -> steamOfElements"); - List firstNames = students.stream() - .map(Student::getFirstName) - .sorted() - .toList(); + List firstNames = students.stream().map(Student::getFirstName).sorted().toList(); System.out.println(firstNames); } @@ -43,9 +39,8 @@ private void streamOfCustomObjects() { System.out.println(); System.out.println("Sorting -> steamOfCustomObjects"); - List sorted = students.stream() - .sorted(Comparator.comparing(Student::getFirstName)) - .toList(); + List sorted = + students.stream().sorted(Comparator.comparing(Student::getFirstName)).toList(); sorted.forEach(System.out::println); } @@ -54,10 +49,11 @@ private void streamOfElements_Reversed() { System.out.println(); System.out.println("Sorting -> steamOfElements_Reversed"); - List firstNames = students.stream() - .map(Student::getFirstName) - .sorted(Comparator.reverseOrder()) - .toList(); + List firstNames = + students.stream() + .map(Student::getFirstName) + .sorted(Comparator.reverseOrder()) + .toList(); System.out.println(firstNames); } @@ -66,9 +62,10 @@ private void streamOfCustomObjects_Reversed() { System.out.println(); System.out.println("Sorting -> steamOfCustomObjects_Reversed"); - List sorted = students.stream() - .sorted(Comparator.comparing(Student::getFirstName).reversed()) - .toList(); + List sorted = + students.stream() + .sorted(Comparator.comparing(Student::getFirstName).reversed()) + .toList(); sorted.forEach(System.out::println); } @@ -77,9 +74,7 @@ private void streamOfMapKeys() { System.out.println(); System.out.println("Sorting -> steamOfMapKeys"); - List studentIds = studentMap.keySet().stream() - .sorted() - .toList(); + List studentIds = studentMap.keySet().stream().sorted().toList(); System.out.println(studentIds); } @@ -88,9 +83,10 @@ private void streamOfMapValues() { System.out.println(); System.out.println("Sorting -> streamOfMapValues"); - List students = studentMap.values().stream() - .sorted(Comparator.comparing(Student::getFirstName)) - .toList(); + List students = + studentMap.values().stream() + .sorted(Comparator.comparing(Student::getFirstName)) + .toList(); students.forEach(System.out::println); } @@ -124,4 +120,4 @@ private void initializeMap() { studentMap.put(student4.getStudentId(), student4); studentMap.put(student5.getStudentId(), student5); } -} \ No newline at end of file +} diff --git a/java-streams/src/main/java/com/amitph/java/streams/StreamFilter.java b/java-streams/src/main/java/com/amitph/java/streams/StreamFilter.java index c13a86b..d2b188c 100644 --- a/java-streams/src/main/java/com/amitph/java/streams/StreamFilter.java +++ b/java-streams/src/main/java/com/amitph/java/streams/StreamFilter.java @@ -1,44 +1,38 @@ package com.amitph.java.streams; -import lombok.AllArgsConstructor; -import lombok.Getter; -import lombok.ToString; -import pl.touk.throwing.ThrowingPredicate; - import java.io.BufferedInputStream; import java.io.FileInputStream; import java.io.IOException; import java.io.InputStream; import java.util.List; +import lombok.AllArgsConstructor; +import lombok.Getter; +import lombok.ToString; +import pl.touk.throwing.ThrowingPredicate; public class StreamFilter { public List filterUsingLambda(List employees) { - return employees.stream() - .filter(e -> e.getAge() > 50) - .toList(); + return employees.stream().filter(e -> e.getAge() > 50).toList(); } public List filteringUsingMethodReference(List employees) { - return employees.stream() - .filter(Employee::isVaccinated) - .toList(); + return employees.stream().filter(Employee::isVaccinated).toList(); } public List filteringUsingMultipleConditions(List employees) { - return employees.stream() - .filter(e -> e.getAge() > 50 && e.isVaccinated()) - .toList(); + return employees.stream().filter(e -> e.getAge() > 50 && e.isVaccinated()).toList(); } public List handlingExceptionsInFilterWithTryCatch(List employees) { return employees.stream() - .filter(e -> { - try { - return e.getPhoto() != null; - } catch (IOException ex) { - return false; - } - }) + .filter( + e -> { + try { + return e.getPhoto() != null; + } catch (IOException ex) { + return false; + } + }) .toList(); } @@ -51,33 +45,30 @@ public List handlingExceptionsInFilterThrowingFunction(List public static void main(String[] a) { StreamFilter streamFilter = new StreamFilter(); - List employees = List.of( - new Employee("Janette X. Shenk", 45, true), - new Employee("Geraldine Bean", 53, true), - new Employee("Richard Knuckles", 55, false), - new Employee("Lloyd Pinkerton", 52, false), - new Employee("Louis McGriff", 42, false), - new Employee("Amber Vang", 48, true) - ); + List employees = + List.of( + new Employee("Janette X. Shenk", 45, true), + new Employee("Geraldine Bean", 53, true), + new Employee("Richard Knuckles", 55, false), + new Employee("Lloyd Pinkerton", 52, false), + new Employee("Louis McGriff", 42, false), + new Employee("Amber Vang", 48, true)); System.out.println("filter() with Lambda Expressions: Employees older than 50"); - streamFilter.filterUsingLambda(employees) - .forEach(System.out::println); + streamFilter.filterUsingLambda(employees).forEach(System.out::println); System.out.println("filter() with Method Reference: Vaccinated Employees"); - streamFilter.filteringUsingMethodReference(employees) - .forEach(System.out::println); + streamFilter.filteringUsingMethodReference(employees).forEach(System.out::println); System.out.println("filter() with Multiple Conditions: Vaccinated Employees older than 50"); - streamFilter.filteringUsingMultipleConditions(employees) - .forEach(System.out::println); + streamFilter.filteringUsingMultipleConditions(employees).forEach(System.out::println); System.out.println("Handling Exceptions in filter(): with try/catch"); - streamFilter.handlingExceptionsInFilterWithTryCatch(employees) - .forEach(System.out::println); + streamFilter.handlingExceptionsInFilterWithTryCatch(employees).forEach(System.out::println); System.out.println("Handling Exceptions in filter(): with throwing function"); - streamFilter.handlingExceptionsInFilterThrowingFunction(employees) + streamFilter + .handlingExceptionsInFilterThrowingFunction(employees) .forEach(System.out::println); } } @@ -93,4 +84,4 @@ class Employee { public InputStream getPhoto() throws IOException { return new BufferedInputStream(new FileInputStream("/" + name + ".png")); } -} \ No newline at end of file +} diff --git a/java-streams/src/main/java/com/amitph/java/streams/comparator/ComparatorExamples.java b/java-streams/src/main/java/com/amitph/java/streams/comparator/ComparatorExamples.java index 2077b80..d82b5eb 100644 --- a/java-streams/src/main/java/com/amitph/java/streams/comparator/ComparatorExamples.java +++ b/java-streams/src/main/java/com/amitph/java/streams/comparator/ComparatorExamples.java @@ -1,7 +1,6 @@ package com.amitph.java.streams.comparator; import com.amitph.java.streams.model.Student; - import java.util.ArrayList; import java.util.Comparator; import java.util.List; @@ -27,12 +26,13 @@ public void initialize() { public void usingAnonymousComparator() { System.out.println("Soring by usingAnonymousComparator "); - students.sort(new Comparator() { - @Override - public int compare(Student o1, Student o2) { - return o1.getFirstName().compareTo(o2.getFirstName()); - } - }); + students.sort( + new Comparator() { + @Override + public int compare(Student o1, Student o2) { + return o1.getFirstName().compareTo(o2.getFirstName()); + } + }); students.forEach(System.out::println); } @@ -40,8 +40,7 @@ public int compare(Student o1, Student o2) { public void usingLambdaExpression() { System.out.println("Sorting by usingAnonymousComparator"); - students.sort( - (o1, o2) -> o1.getFirstName().compareTo(o2.getFirstName())); + students.sort((o1, o2) -> o1.getFirstName().compareTo(o2.getFirstName())); students.forEach(System.out::println); } @@ -68,9 +67,7 @@ public void usingComparatorCompositions() { System.out.println("Sorting by usingComparatorCompositions"); students.sort( - Comparator.comparing(Student::getLastName) - .thenComparing(Student::getFirstName) - ); + Comparator.comparing(Student::getLastName).thenComparing(Student::getFirstName)); students.forEach(System.out::println); } @@ -78,8 +75,7 @@ public void usingComparatorCompositions() { public void usingLambdaExpression_Reversed() { System.out.println("Sorting by usingLambdaExpression_Reversed"); - students.sort( - (o1, o2) -> o2.getFirstName().compareTo(o1.getFirstName())); + students.sort((o1, o2) -> o2.getFirstName().compareTo(o1.getFirstName())); students.forEach(System.out::println); } @@ -87,9 +83,7 @@ public void usingLambdaExpression_Reversed() { public void usingComparatorComparing_Reversed() { System.out.println("Sorting by usingComparatorComparing_Reversed"); - students.sort(Comparator.comparing( - Student::getAge, - Comparator.reverseOrder())); + students.sort(Comparator.comparing(Student::getAge, Comparator.reverseOrder())); students.forEach(System.out::println); } @@ -97,10 +91,9 @@ public void usingComparatorComparing_Reversed() { public void usingComparatorCompositions_MixedSortOrder() { System.out.println("Sorting by usingComparatorCompositions_MixedSortOrder"); - students.sort(Comparator.comparing( - Student::getLastName) - .thenComparing(Student::getAge, Comparator.reverseOrder()) - ); + students.sort( + Comparator.comparing(Student::getLastName) + .thenComparing(Student::getAge, Comparator.reverseOrder())); students.forEach(System.out::println); } @@ -118,4 +111,4 @@ public static void main(String[] a) { comparatorExamples.usingComparatorComparing_Reversed(); comparatorExamples.usingComparatorCompositions_MixedSortOrder(); } -} \ No newline at end of file +} diff --git a/java-streams/src/main/java/com/amitph/java/streams/comparator/StudentSortUtils.java b/java-streams/src/main/java/com/amitph/java/streams/comparator/StudentSortUtils.java index 8cd8be6..cb876e7 100644 --- a/java-streams/src/main/java/com/amitph/java/streams/comparator/StudentSortUtils.java +++ b/java-streams/src/main/java/com/amitph/java/streams/comparator/StudentSortUtils.java @@ -5,14 +5,12 @@ public class StudentSortUtils { public static int comparingFirstName(Student student1, Student student2) { - return student1.getFirstName() - .compareTo(student2.getFirstName()); + return student1.getFirstName().compareTo(student2.getFirstName()); } public static int comparingFirstAndLastName(Student student1, Student student2) { - return - (student1.getFirstName().equals(student2.getFirstName())) ? - comparingFirstName(student1, student2) - : student1.getLastName().compareTo(student2.getLastName()); + return (student1.getFirstName().equals(student2.getFirstName())) + ? comparingFirstName(student1, student2) + : student1.getLastName().compareTo(student2.getLastName()); } -} \ No newline at end of file +} diff --git a/java-streams/src/main/java/com/amitph/java/streams/model/Student.java b/java-streams/src/main/java/com/amitph/java/streams/model/Student.java index a879698..b1e0e68 100644 --- a/java-streams/src/main/java/com/amitph/java/streams/model/Student.java +++ b/java-streams/src/main/java/com/amitph/java/streams/model/Student.java @@ -8,4 +8,4 @@ public class Student { private final String firstName; private final String lastName; private final Integer age; -} \ No newline at end of file +} diff --git a/pom.xml b/pom.xml index a649c3d..3bf41d0 100644 --- a/pom.xml +++ b/pom.xml @@ -14,7 +14,7 @@ UTF-8 - 17 + 21 @@ -37,6 +37,34 @@ ${java.version} + + com.diffplug.spotless + spotless-maven-plugin + 2.43.0 + + + + src/main/java/**/*.java + src/test/java/**/*.java + + + 1.17.0 + + + + + + + + + + + check + + package + + + \ No newline at end of file