# Overview

--Memo of the place where you got caught while studying --I could use it with Integer type, but I couldn't use Comparator with int type descending order. --The conclusion seems to be possible with boxed.

# Sample program

--Problems such as "Use an int type array to sort the next number in descending order and output it"

``````import java.util.Arrays;
import java.util.Comparator;

public class Main {
public static void main(String[] args) throws Exception {

//input
int[] numArray = {4, 3, 2, 5, 6, 7, 3, 2, 1, 9, 7, 8, 10, 6, 4, 3, 5, 8, 9};

Arrays.stream(numArray)
.boxed()
.sorted(Comparator.reverseOrder())
.forEach(i -> System.out.print(i + " "));
}
}

``````

Output result

``````10 9 9 8 8 7 7 6 6 5 5 4 4 3 3 3 2 2 1
``````

By combining filter and distinct, you can narrow down and remove duplicates.

``````import java.util.Arrays;
import java.util.Comparator;

public class Main {
public static void main(String[] args) throws Exception {

//input
int[] numArray = {4, 3, 2, 5, 6, 7, 3, 2, 1, 9, 7, 8, 10, 6, 4, 3, 5, 8, 9};

Arrays.stream(numArray)
.boxed()
.distinct()
.filter(x -> x >= 5)
.sorted(Comparator.reverseOrder())
.forEach(i -> System.out.print(i + " "));
}
}

``````

Output result

``````10 9 8 7 6 5
``````

If you rewrite the array itself, it looks like this

``````import java.util.Arrays;
import java.util.Comparator;

public class Main {
public static void main(String[] args) throws Exception {

//input
int[] numArray = {4, 3, 2, 5, 6, 7, 3, 2, 1, 9, 7, 8, 10, 6, 4, 3, 5, 8, 9};

numArray = Arrays.stream(numArray)
.boxed()
.distinct()
.filter(x -> x >= 5)
.sorted(Comparator.reverseOrder())
.mapToInt(Integer::intValue)
.toArray();
System.out.println(Arrays.toString(numArray));
}
}
``````

Output result

``````[10, 9, 8, 7, 6, 5]
``````

# reference

• https://stackoverflow.com/questions/880581/how-to-convert-int-to-integer-in-java
• https://teratail.com/questions/52847