Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java: Общие вопросы > Робота с Java коллекциями


Автор: Sergio 18.3.2007, 21:47
Здраствуйте. Учу сейчас коллекции. Насколько я понял есть три вида:
  •  Arrays (Массивы. Вообщем нужны для роботы с примитивными типами (int, char, long, etc))
  •  Iterators (Итераторы. Нужны для пробежки по объектам)
  •  Collections (Коллекции или контейнеры. Они сохранияют объекты. Сюда относятся: Collection, Set, List, Map)
Если что не так, то поправте меня. И вот первые проблемы  с итератором:
Код

public class Car{

 public void destroy() {. . .}

    public static void main(String[] args) {
    ArrayList<Car> list = new ArrayList<Car>();        
     for (int a=0; a<10; a++)
            list.add(new Car());
         
    Iterator<Car> it = list.iterator();                  
    }
}

Поясните как мне применить иттератор к листу. Чтобы потом пробежатся по нему использовав метод next() и вызвать метод destroy() для каждого объекта листа.
  

Автор: powerOn 18.3.2007, 21:55
RTFM!  smile 
http://java.sun.com/docs/books/tutorial/collections/index.html

Автор: Sergio 18.3.2007, 22:01
powerOn,  я читал тутор, но не очень понял. Я подняял эту тему чтобы самому разобратся и другие поймут. Хочу сделать в виде урока.

Добавлено @ 22:08 
Вот решение задачи: 
Код

public class Car{
    public void destroy() {
        System.out.println("destroy car");
    }

    public static void main(String[] args) {
        ArrayList<Car> list = new ArrayList<Car>();        
         for (int a=0; a<10; a++)
           list.add(new Car());
         
            Iterator<Car> it = list.iterator();  //<<<<< создание итератора для list
             while(it.hasNext())
                    it.next().destroy();                          
    }
}

Если кто не понял то спрашивайте.

Я так понимаю, что Set контейнер нужен для сохранения уникальных объектов(тоесть два одинаковых мы не впихнём). А Map нужен для будущего поиска по критерию(тоесть оп ключу"Object key"). Если что -то не так то поправте. Спасибо.

Автор: nornad 19.3.2007, 00:07
Set - множество уникальных значений. Map - "карта" значений, каждое из которых хранится по своему уникальному ключу. В принципе, сами ключи карты можно получить в виде множества.
Теперь немного о применении.
Множества удобно применять, например для простого хранения списка логинов - логины не могут повторяться и легко проверить, есть ли в множестве заводимый логин и разрешить или запретить заведение в зависимости от результата.
Карту удобно применять, если кроме самих уникальных объектов надо хранить ещё и какую-то дополнительную информацию для каждого из них. В примере с логинами это может быть, например, контактная информация пользователя.

Добавлено @ 00:10 
Цитата(Sergio @  19.3.2007,  00:47 Найти цитируемый пост)
Здраствуйте. Учу сейчас коллекции. Насколько я понял есть три вида:

    *  Arrays (Массивы. Вообщем нужны для роботы с примитивными типами (int, char, long, etc))
    *  Iterators (Итераторы. Нужны для пробежки по объектам)
    *  Collections (Коллекции или контейнеры. Они сохранияют объекты. Сюда относятся: Collection, Set, List, Map)

Итераторы коллекциями не являются.  smile 
Итератор - объект для последовательного прохода по коллекции.

Автор: LSD 19.3.2007, 15:18
http://vingrad.ru/JAVA-FAQ-000104
http://vingrad.ru/JAVA-FAQ-000127
http://vingrad.ru/JAVA-FAQ-002980

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)