2016-04-03 11 views
0

ile yinelemede sorun yaşıyorum Neden aşağıdaki ifade hiçbir zaman vurur anlamıyorum, ben film ve films.get (i) .getTitle() aynı dize günlüğü doğruladı : şey ama öncülleri içinBir ArrayList (Java)

List<Film> films = new ArrayList<Film>(); 
films = filmDB.getAllFilms(); 



for(int i = 0; i < films.size(); i++) 

       if(movie == films.get(i).getTitle()) 
       { 
        Log.d("TITLEMOVIE", films.get(i).getTitle()); 
        ; 
       } 
      else 
       { 
        Log.d("NOMATIC", films.get(i).getTitle()); 
       } 
+0

Dizelerin içeriğini karşılaştırmak için String eşitlik yöntemini kullanmanız gerekir. == iki referansın hem null hem de her ikisi de aynı nesneye işaret edip etmediğini sınar. –

+0

Dize karşılaştırması için eşittir kullan –

+0

İki dizede kullanmak için kullanmam gerekeni kaçırmadım, teşekkürler. –

cevap

0

== iki nesnenin bellek adreslerini karşılaştırır. Dizeleri ve diğer nesneleri karşılaştırmak için .equals kullanın.

i.e;

String str1 = "bla"; 
// Use String::new to make sure 'str1' and 'str2' don't reference the same literal 
String str2 = new String("bla"); 

System.out.println(str1 == str1); // true 
System.out.println(str1 == str2); // false 
System.out.println(str1.equals(str2)); // true