Как я могу реализовать интерфейс Iterable?

sort <file1> | uniq -w 1

При этом будет сравниваться только первая буква во входном файле. Дайте мне знать, если это сработает. Предполагая, что ваш файл отсортирован.

52
задан Mridang Agarwalla 29 October 2015 в 05:29
поделиться

2 ответа

Повторяемый универсальный интерфейс. Проблема, которую Вы могли бы иметь (Вы на самом деле не сказали, какую проблему Вы имеете, если таковые имеются) состоит в том, что при использовании универсального интерфейса/класса, не определяя аргумент (аргументы) типа, можно стереть типы несвязанных универсальных типов в классе. Пример этого находится в Необщая ссылка к универсальным результатам класса в неуниверсальных типах .

возврата

, Таким образом, я, по крайней мере, изменил бы его на:

public class ProfileCollection implements Iterable<Profile> { 
    private ArrayList<Profile> m_Profiles;

    public Iterator<Profile> iterator() {        
        Iterator<Profile> iprof = m_Profiles.iterator();
        return iprof; 
    }

    ...

    public Profile GetActiveProfile() {
        return (Profile)m_Profiles.get(m_ActiveProfile);
    }
}

и это должно работать:

for (Profile profile : m_PC) {
    // do stuff
}

Без аргумента типа на Повторяемом, итератор может быть уменьшен до того, чтобы быть текстовым объектом поэтому, только это будет работать:

for (Object profile : m_PC) {
    // do stuff
}

Это - довольно неясный угловой случай дженериков Java.

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

59
ответ дан Community 7 November 2019 в 09:32
поделиться

Прежде всего:

public class ProfileCollection implements Iterable<Profile> {
113-секундный:

return m_Profiles.get(m_ActiveProfile);
4
ответ дан TofuBeer 7 November 2019 в 09:32
поделиться
Другие вопросы по тегам:

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