Например, Map<String*, Integer> map = new TreeMap<String, Integer>();, там где * можно поставить < <String,String>, Integer > например?
2.Для чего нужны одноэлементные коллекции? Первый раз слышу.Гугл мало информации дает.
Зависит от конкретной реализации Map. У TreeMap обязательным требованием для ключа является реализация интерфейса Comparable. Соответственно, можно определить собственный класс, имеющий два поля типа String и реализующий Comparable, а потом использовать объекты этого класса в качестве ключа. Ещё проще использовать HashMap вместо TreeMap. Ключом HashMap может быть любой хэшируемый объект, поэтому можно использовать, например, List, содержащий пару строк.
List<String> key1 = new ArrayList<>();
key1.add("qqq");
key1.add("www");
List<String> key2 = new ArrayList<>();
key2.add("eee");
key2.add("rrr");
Map<List, Integer> map = new HashMap<>();
map.put(key1, 1);
map.put(key2, 2);
Вторая часть вопроса слишком общая. Причём как определение "одноэлементная коллекция" слишком размытое, так и область её применения очень обширна. Например, какой-то метод ждёт в качестве аргумента коллекцию, а вам надо передать только один элемент.
List<String> list = new ArrayList<>();
list.add("abc");
list.add(null);
list.add("def");
list.removeAll(Collections.singletonList(null));
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости