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


Автор: freshAngel 6.12.2009, 17:23
Привет, есть две коллекции:

Код


ArrayList ip = new ArrayList();
ArrayList gs = new ArrayList();

ip.add("418"); 
ip.add("415");      
ip.add("404");      
ip.add("412");      

gs.add("415"); 
gs.add("415");      
gs.add("404");      
gs.add("412");      

for (int i=0; i<ip.size(); q++) {
for (int q=0; q<gs.size(); q++) {
if(ip.get(i).equals(gs.get(q)))  System.out.println("Найдено!");
}
}


Почему "Найдено!" выдается три раза, а не один!????            

Автор: Galaran 6.12.2009, 17:58
Оно даже не компилируется: в 14 строке не определено q

А какая стоит задача ?

Автор: Vasay 6.12.2009, 18:36
freshAngel, 

По идеи вопрос должен быть таким - почему выдается 3 раза а не 4  smile  (это если исправить ошибку, про которую сказал Galaran)

Добавлено @ 18:39
Запустите так:

Код

        ArrayList ip = new ArrayList();
        ArrayList gs = new ArrayList();
        ip.add("418");
        ip.add("415");
        ip.add("404");
        ip.add("412");
        gs.add("415");
        gs.add("415");
        gs.add("404");
        gs.add("412");
        for (int i = 0; i < ip.size(); i++) {
            for (int q = 0; q < gs.size(); q++) {
                if (ip.get(i).equals(gs.get(q))) {
                    System.out.println("Найдено!"+" i="+i+ " q="+q);
                }
            }
        }
    }


Может станет ясно что к чему  smile 

Автор: freshAngel 7.12.2009, 17:06
Все верно было.
Значения действительно было три!  smile 


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