Zapoznaj się z HashMap<>
Albo Stream:
import java.util.Scanner;
import java.util.function.Function;
import java.util.stream.Collectors;
import java.util.stream.Stream;
public class NewClass
{
private static final Scanner sc=new Scanner(System.in);
public static void main(String args[])
{
System.out.print("count v1 v2 v3 ... vC: ");
Stream
.generate(() -> sc.nextInt())
.limit(sc.nextInt())
.sorted()
.collect(Collectors.groupingBy(Function.identity(),Collectors.counting()))
.entrySet()
.forEach(e -> System.out.println(String.format("%d: %d",e.getKey(),e.getValue())))
;
}
}
@obscurity: niestety takie proste wymaganie wymaga znacznie więcej kodu ale nie ma rzeczy niemozliwych:
import java.util.Comparator;
import java.util.Map;
import java.util.Scanner;
import java.util.function.Function;
import java.util.stream.Collectors;
import java.util.stream.Stream;
public class NewClass
{
private static final Scanner sc=new Scanner(System.in);
public static void main(String args[])
{
System.out.print("count v1 v2 v3 ... vC: ");
Stream
.generate(() -> sc.nextInt())
.limit(sc.nextInt())
.collect(Collectors.groupingBy(Function.identity(),Collectors.counting()))
.entrySet()
.stream()
.sorted
(
Comparator
.comparing(Map.Entry<Integer,Long>::getValue)
.reversed()
.thenComparing(Map.Entry<Integer,Long>::getKey)
)
.forEach(e -> System.out.println(String.format("%d: %d",e.getKey(),e.getValue())))
;
}
}