пятница, 20 января 2012 г.

Нечувствительный регистр для типа HashSet

Постановка задачи:
Нечувствительный регистр для типа HashSet

Допустим вам необходимо сделать так что бы в HashSet добавлялись элементы не обращая внимания на регистр. Я предлагаю сделать это одним из двух способов:


Решение:

Использовать TreeSet

Результат:

Упорядоченная коллекция TreeSet (так как TreeSet автоматически упорядочивает    
        помещаемые в него данные)

Java Код:

Set<String> set = new TreeSet<String>(String.CASE_INSENSITIVE_ORDER);
String s1 = "TO";
String s2 = "to";
set.add(s1);
set.add(s2);
System.out.println(set.toString());

/////////////////////////////////////////////////////////////
Решение:

Использовать LinkedHashMap

Результат:

Коллекция с элементами в порядке добавления.

Java код:

Map<String, String> map = new LinkedHashMap<String, String>();
String s1 = "TO DO";
String s2 = "To do";
map.put(s1.toUpperCase(), s2);
map.put(s2.toUpperCase(), s2);
for (Map.Entry<String, String> entry : map.entrySet()){
System.out.println("key = " + entry.getKey());
System.out.println("value = " + entry.getValue());
}

Комментариев нет:

Отправить комментарий