How to remove duplicate maximum and minimum values from an unsorted array in Java

1 Answer

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

public class Example {
    public static void main(String[] args) {
        Integer[] arr = {3, 5, 1, 6, 1, 1, 9, 8, 9, 9, 9, 7, 4};
        
        int max = Arrays.stream(arr).max(Integer::compare).orElse(Integer.MIN_VALUE);
        int min = Arrays.stream(arr).min(Integer::compare).orElse(Integer.MAX_VALUE);
        int[] onemin = {0}; 
        int[] onemax = {0};

        List<Integer> result = Arrays.stream(arr)
                .filter(i -> (i > min || onemin[0]++ == 0) && (i < max || onemax[0]++ == 0))
                .collect(Collectors.toList());

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



/*
run:

3 5 1 6 9 8 7 4

*/

 



answered May 3, 2025 by avibootz
...