Как написать метод values ​​() из sortedMap в Java?

Мне любопытно, есть ли у кого-нибудь советы о том, как начать писать values() метод класса, реализующий Java sortedmap интерфейс. Если возможно, пример кода будет высоко ценится.

3 ответа

Если только ваш SortedMap реализация хранит список (или любую другую перемещаемую коллекцию) значений карты, ваш values() реализация, скорее всего, будет именно такой (что вполне универсально):

public Collection<V> values() {
    List<V> values = new ArrayList<V>();
    for (K key: keySet()) {
        values.add(get(key));
    }
}

Фокус на реализации entrySet(), Как только вы это сделаете, сделайте это:

public Collection<V> values() {
    List<V> values = new ArrayList<V>();
    for (Map.Entry<K, V> entry : entrySet()) {
        values.add(entry.getValue());
    }
    return values;
}

TreeMap, который является реализацией интерфейса SortedMap, может быть хорошим местом для проведения некоторых исследований:

http://www.docjar.com/html/api/java/util/TreeMap.java.html

Другие вопросы по тегам