/home/wpollock1/public_html/restricted/Java1/MergePurgeReverse.java
// Merge two arrays of Integers, Purging Dups and nulls, and reverse sort:
// A complex interview question. Perfect code on the first try should not
// be expected.
//
// The task is not well defined: is the data sorted? Could the arrays each
// have duplicates? Is there a requirement or need for a single method with
// this functionality? (If not, refactor into methods "purge", "merge", and
// possibly "reverseSort" too.) The not-null requirement says data is an
// Integer[], not an int[].
//
// Written 3/2019 by Wayne Pollock, Tampa Florida USA
// package whatever;
import java.util.*;
class MergePurgeReverse {
// Canned data for demo:
private static final Integer[] firstArray = { 1, 2, 2, null, 17 };
private static final Integer[] secondArray = { 3, 2, 4, 5, null, 17 };
public static void main ( String [] args ) {
Set<Integer> set = new HashSet<>();
for ( Integer num : firstArray ) {
if ( num != null ) {
set.add( num );
}
}
for ( Integer num : secondArray ) {
if ( num != null ) {
set.add( num );
}
}
// Java 8 feature:
Integer[] result = set.stream().toArray(Integer[]::new);
Arrays.sort(result, Collections.reverseOrder());
System.out.println( Arrays.toString( result ) );
}
}