problem z rzutowaniem z ArrayList

problem z rzutowaniem z ArrayList
KA
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 44
0

Witam
Mam następujący kod:

Kopiuj
        for(int i=0;i<listaZalogowanych.size();i++)
			{
			System.out.println("wyrazenie1: " + (String) (object) +"  wyrazenie2: "+ (String) listaZalogowanych.get(i));
			
	                         if ((String) listaZalogowanych.get(i)==(String) (object))
				{
				System.out.println("jestem w pętli");
				listaZalogowanych.remove(i);
				}
			}

Problem jest w tym, że podczas pewnego obrotu pętli pojawia się komunikat "wyrazenie1: test wyrazenie2: test
a komunukat "jestem w pętli" nie pojawia się?
hmmm... przecież te dwa stringi są takie same więc dlaczego warunek if nie jest spełniony??

p.s dodam że operacja ta udaje się dla null

bogdans
  • Rejestracja: dni
  • Ostatnio: dni
0

Operator == dla Stringów porównuje referencje, nie zawartość. Użyj metody equals().

KA
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 44
0

czyli coś takiego?

Kopiuj
	if (listaZalogowanych.get(i).equals(object))
				{
				System.out.println("A mnie tu nie ma");
				listaZalogowanych.remove(i);
				}

Czy również je rzutować?

bogdans
  • Rejestracja: dni
  • Ostatnio: dni
0

Zależy jakiego typu są zmienne obiekt i listaZalogowanych. Możesz nie rzutować, jeśli obiekt jest typu String, a listaZalogowanych jest typu List<String>.

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.