Dwa iteratory ten sam obiekt

0

Jak sprawdzic czy dwa iteratory wskazuja ten sam obiekt?

for(Iterator<String> it1 = kody.iterator() ; it1.hasNext() ;){
                for(Iterator<String> it2 = kody.iterator() ; it2.hasNext() ;){
                        if(it1==it2)
  

zwyczajne it1 == it2 cos nie dziala

0
for(Iterator<String> it1 = kody.iterator() ; it1.hasNext() ;){
                String s1=it1.next();
                for(Iterator<String> it2 = kody.iterator() ; it2.hasNext() ;){
                    String s2= it2.next();
                    if(s1==s2) 

Tak dziala, ale czy da sie to zrobic na samych iteratorach?

0
 
if(it1.next()==it2.next())
0

Nie wiem czym są kody, ale:

for (String s1 : kody1)
{
	for (String s2 : kody2)
	{
		if (s1 == s2)
		{
			//
		}
	}
}

I nie rozumiem czemu tworzysz dwa iteratory na tą samą kolekcję.

0
Yob napisał(a)
 
if(it1.next()==it2.next())

A jesli next() nie istnieje?

Mam dwa iteratory bo sprawdzam kazdy z kazdym.

0

Wydaje mi się, że po to robiłeś w pętli jako warunek stopu .hasNext(), aby być tego pewnym ;)

0

Jak sprawdzic czy dwa iteratory wskazuja ten sam obiekt?

for(Iterator<String> it1 = kody.iterator() ; it1.hasNext() ;){
for(Iterator<String> it2 = kody.iterator() ; it2.hasNext() ;){
if(it1==it2)

zwyczajne it1 == it2 cos nie dziala

Oczekiwanie, że powyższy kod zadziała, to przejaw skrajnej bezmyślności. Ty musisz porównywać obiekty (napisy) wskazywane przez iterator.

0
Yob napisał(a)
 
if(it1.next()==it2.next())

Żeby te pętle działały tak jak powinny to it1.next() nie może być wywoływane w pętli wewnętrznej, a w zewnętrznej tylko raz na iterację.

Co chcesz zrobić? Bo tworzenie dwóch iteratorów do tej samej kolekcji w ten sposób jest trochę dziwne ;)

1 użytkowników online, w tym zalogowanych: 0, gości: 1