import java.util.Arrays;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
import java.util.stream.IntStream;

public class Main {
    public static void main(String[] args) {
        final List<Integer> list = Arrays.asList(10, 6, 16, 46, 5, 16, 7);
		final Map<Integer, List<Integer>> indexMap = IntStream.range(0, list.size()).boxed()
		        .collect(Collectors.groupingBy(list::get));
        System.out.println(indexMap);
    }
}