How to get unique values from two arrays in Java

3 Answers

0 votes
import java.util.stream.Collectors;
import java.util.Arrays;
import java.util.List;
import java.util.Set;

public class Main {
    public static void main(String[] args) {
        Integer[] arr1 = { 1, 3, 6, 8, 12, 90 };
        Integer[] arr2 = { 2, 3, 5, 6, 7, 8, 96 };

        List<Integer> result = get_unique_values(arr1, arr2);

        System.out.println(result.stream().map(String::valueOf).collect(Collectors.joining(", ")));
    }

    public static List<Integer> get_unique_values(Integer[] arr1, Integer[] arr2) {
        Set<Integer> diff1 = Arrays.stream(arr1).collect(Collectors.toSet());
        Set<Integer> diff2 = Arrays.stream(arr2).collect(Collectors.toSet());

        diff1.removeAll(Arrays.asList(arr2));
        diff2.removeAll(Arrays.asList(arr1));

        diff1.addAll(diff2);
        
        return diff1.stream().sorted().collect(Collectors.toList());
    }
}


/*
run:

1, 2, 5, 7, 12, 90, 96

*/

 



answered Feb 16, 2025 by avibootz
0 votes
import java.util.HashSet;
import java.util.Set;

public class Main {
    public static void main(String[] args) {
        int[] array1 = {1, 2, 3, 4, 5};
        int[] array2 = {4, 5, 6, 7, 8};

        Set<Integer> uniqueValues = findUniqueValues(array1, array2);
        System.out.println(uniqueValues);
    }

    public static Set<Integer> findUniqueValues(int[] array1, int[] array2) {
        Set<Integer> uniqueValues = new HashSet<>();
        
        for (int num : array1) {
            uniqueValues.add(num);
        }
        for (int num : array2) {
            uniqueValues.add(num);
        }
        
        return uniqueValues;
    }
}


/*
run:

[1, 2, 3, 4, 5, 6, 7, 8]

*/

 



answered Feb 16, 2025 by avibootz
edited Feb 16, 2025 by avibootz
0 votes
import java.util.Set;
import java.util.Arrays;
import java.util.stream.Stream;
import java.util.stream.Collectors;

public class Main {
    public static void main(String[] args) {
        Integer[] array1 = {1, 2, 3, 4, 5};
        Integer[] array2 = {4, 5, 6, 7, 8};

        Set<Integer> uniqueValues = Stream.concat(Arrays.stream(array1), Arrays.stream(array2))
                                          .collect(Collectors.toSet());

        System.out.println(uniqueValues);
    }
}



/*
run:

[1, 2, 3, 4, 5, 6, 7, 8]

*/

 



answered Feb 16, 2025 by avibootz

Related questions

1 answer 100 views
1 answer 90 views
1 answer 87 views
1 answer 183 views
1 answer 70 views
1 answer 97 views
1 answer 76 views
...