Dwa iteratory ten sam obiekt

Dwa iteratory ten sam obiekt
0

Jak sprawdzic czy dwa iteratory wskazuja ten sam obiekt?

Kopiuj
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
Kopiuj
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?

Yob
  • Rejestracja:około 14 lat
  • Ostatnio:ponad 12 lat
  • Postów:74
0
Kopiuj
 
if(it1.next()==it2.next())

VI
  • Rejestracja:ponad 13 lat
  • Ostatnio:ponad 11 lat
  • Postów:212
0

Nie wiem czym są kody, ale:

Kopiuj
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)
Kopiuj
 
if(it1.next()==it2.next())

A jesli next() nie istnieje?

Mam dwa iteratory bo sprawdzam kazdy z kazdym.

Yob
  • Rejestracja:około 14 lat
  • Ostatnio:ponad 12 lat
  • Postów:74
0

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


edytowany 1x, ostatnio: Yob
bogdans
Moderator
  • Rejestracja:prawie 17 lat
  • Ostatnio:prawie 5 lat
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.


To smutne, że głupcy są tak pewni siebie, a ludzie mądrzy - tak pełni wątpliwości. Bertrand Russell
Wibowit
  • Rejestracja:prawie 20 lat
  • Ostatnio:około 3 godziny
0
Yob napisał(a)
Kopiuj
 
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 ;)


"Programs must be written for people to read, and only incidentally for machines to execute." - Abelson & Sussman, SICP, preface to the first edition
"Ci, co najbardziej pragną planować życie społeczne, gdyby im na to pozwolić, staliby się w najwyższym stopniu niebezpieczni i nietolerancyjni wobec planów życiowych innych ludzi. Często, tchnącego dobrocią i oddanego jakiejś sprawie idealistę, dzieli od fanatyka tylko mały krok."
Demokracja jest fajna, dopóki wygrywa twoja ulubiona partia.
edytowany 1x, ostatnio: Wibowit

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.