Поиск пользовательских объектов с одним и тем же членом String в ArrayList - PullRequest
1 голос
/ 08 декабря 2011

У меня есть ArrayList пользовательских объектов Шина , которые содержат элементы String origin и destination . Для членов есть методы get и set.

Я хотел бы написать метод, который идентифицирует шины в ArrayList, которые имеют одинаковое происхождение и назначение.

Какой самый эффективный способ сделать это? Можно ли использовать API коллекций?

К сожалению, я не могу использовать сторонние библиотеки, такие как Commons или Guava.

Большое спасибо за любые предложения.

Редактировать: У меня нет контроля над классом шины, поэтому я не могу добавлять в него какие-либо методы или члены.

Редактировать: Также я не могу определить какие-либо новые классы.

Ответы [ 2 ]

2 голосов
/ 08 декабря 2011

Вы должны добавить такую ​​структуру:

class Line {
    private String origin;
    private String destination;
    ..getters.. 
    ..setters..
    public int hashCode() {
        ...
    }
    public boolean equals(Object o) {
        ...
    }
}

И хранить свои автобусы в

Map<Line, List<Bus>>.

Не забудьте реализовать свойство hashCode / equals.

0 голосов
/ 08 декабря 2011

Запишите Comparator, который сначала сравнивается с источником, а затем с пунктом назначения. Используйте компаратор для сортировки списка, используя Collections.sort(List, Comparator). Автобусы с тем же отправлением и назначением, что и у другого автобуса, теперь будут отображаться рядом друг с другом в списке.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...