Ответ 1
В Guava есть TreeMultimap, в котором хранятся как ключи, так и значения в отсортированном порядке. Однако для значений, а не List
используется TreeSet
, поэтому может быть не совсем то, что вы хотите здесь. В этом случае Guava позволяет создать Multimap
, который работает любым способом, используя один из методов Multimaps.new*Multimap
, например Multimaps.newListMultimap. Чтобы создать тот, который работает так, как вы описываете, вы просто напишете это:
Map<Integer, Collection<Integer>> map = Maps.newTreeMap();
ListMultimap<Integer, Integer> m = Multimaps.newListMultimap(map,
new Supplier<List<Integer>>() {
public List<Integer> get() {
return Lists.newArrayList(); // assuming you want to use ArrayList
}
});