Используя набор ключей () метод в HashMap

Я не программист Objective-C, просто сочувствующий, но возможно , NSSelectorFromString - то, в чем Вы нуждаетесь. Это упомянуло explicity в Ссылка Во время выполнения , что можно использовать его для преобразования строки в селектор.

5
задан andandandand 11 December 2009 в 01:36
поделиться

7 ответов

Использование:

Set<MyGenericType> keySet = map.keySet();

Всегда пытайтесь указать тип интерфейса для коллекций, возвращаемых этими методами. Таким образом, независимо от фактического класса реализации Set, возвращаемого этими методами (в вашем случае map.keySet ()), все будет в порядке. Таким образом, если в следующем выпуске ребята из jdk будут использовать другую реализацию для возвращенного Set, ваш код все равно будет работать.

map.keySet () возвращает представление ключей карты. Внесение изменений в это представление приводит к изменению базовой карты, хотя эти изменения ограничены. См. Javadoc для карты:

http://java.sun.com/j2se/1.5.0/docs/api/java/util/Map.html#keySet%28%29

5
ответ дан 18 December 2019 в 13:15
поделиться
Map<String, String> someStrings = new HashMap<String, String>();
for(Map.Entry<String, String> entry : someStrings.entrySet()) {
    String key = entry.getKey();
    String value = entry.getValue();
}

Вот как мне нравится перебирать карты. Если вам нужен только keySet (), этот ответ находится в другом месте на этой странице.

5
ответ дан 18 December 2019 в 13:15
поделиться
for ( String key : map.keySet() ) { 
 System.out.println( key );
}
4
ответ дан 18 December 2019 в 13:15
поделиться

Все, что гарантировано keySet () , - это то, что реализует интерфейс Set . И это может быть какой-то недокументированный класс, например SecretHashSetKeys $ foo , поэтому просто запрограммируйте интерфейс Set .

Я столкнулся с этим, пытаясь получить представление о TreeSet , возвращаемый тип при внимательном рассмотрении оказался TreeSet $ ​​3 .

0
ответ дан 18 December 2019 в 13:15
поделиться

Если вы не используете более старый JDK, я думаю, что будет немного чище использовать дженерики при использовании классов коллекций.

Итак,

Set<MyType> s = map.keySet();

А затем, если вы просто перебираете их , то вы можете использовать любой цикл, какой захотите. Но если вы собираетесь изменять карту на основе этого набора ключей, вам необходимо использовать итератор набора ключей.

0
ответ дан 18 December 2019 в 13:15
поделиться

Просто

Set t = map.keySet();
0
ответ дан 18 December 2019 в 13:15
поделиться

Set t = map.ketSet ()

API не указывает, какой тип Set возвращается.

Вы должны попытаться объявить переменные как интерфейс, а не конкретную реализацию .

0
ответ дан 18 December 2019 в 13:15
поделиться
Другие вопросы по тегам:

Похожие вопросы: