Ich werde es aufschreiben, weil ich es brauchte, um das AtCoder-Problem zu lösen. Ich denke, es gibt verschiedene Möglichkeiten, es in Java zu implementieren, aber ich werde die Implementierung beschreiben, die meiner Meinung nach die kürzeste sein kann.
Geben Sie die Anzahl der einzugebenden Zahlen und die Liste der Zahlen wie unten gezeigt ein.
4
2 2 1 3
Dies ist ein Beispiel, das die Liste der eingegebenen Nummern in absteigender Reihenfolge ausgibt.
Sample.java
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;
import java.util.stream.Collectors;
import static java.util.Comparator.reverseOrder;
public class Sample {
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
List<Long> inputList = new ArrayList<Integer>();
for(int i = 0; i < n ;i++) {
inputList.add(sc.nextInt());
}
//Dies ist der relevante Teil der Sorte
List<Integer> sortedList = inputList.stream().sorted(reverseOrder()).collect(Collectors.toList());
for(int a: sortedList) {
System.out.println(a);
}
}
}
[Aktualisiert am 02.09.2020] Wir haben einen Kommentar von @swordone erhalten. Wenn Sie unveränderlich garantieren möchten, lautet das Sortierteil wie folgt.
List<Integer> sortedList = inputList.stream().sorted(reverseOrder())
.collect(Collectors.collectingAndThen(Collectors.toList(), Collections::unmodifiableList));
Recommended Posts