2016-03-20 25 views
0

nesnesini ekleyememek, bu bir test sınıfıdır. Burada dize dizisine dize eklemeye çalışıyorum. Benim durumumda ArrayList'i kullanamam. Öyleyse bana bir çözüm ver.İlkel olmayan diziye

public class Test { 

String[] name = new String[10]; 

public void addName(String sName){ 
    for(String s : name){ 
     if(s==null){ 
      s = sName; 
      break; 
     } 
    } 
} 

public void displayString(){ 
    for(String s : name){ 
     System.out.println(s); 
    } 
} 
} 

bu ana sınıftır

public class TestDemo { 

public static void main(String[] args) { 
    Test t = new Test(); 
    t.addName("prasad"); 
    t.addName("ravi"); 
    t.addName("john"); 

    t.displayString(); 
} 

} 

DisplayString koymak üzerinden boş

+1

suçlu 's = sName olduğunu çalışması gerekir;' Bu atama Eğer öyle düşündüğün yapmaz. Bu, 's 'değerinin değerini' s' olarak atar, ancak 's' yalnızca yerel bir değişkendir; 'name' dizisindeki herhangi bir öğeye bağlanmaz. Başkaları tarafından da işaret edildiği gibi, 'name' dizisindeki adı [i] = sName' ile erişerek açıkça atamanız gerekir. – bili

cevap

3

Think adı [index] arasında değeri kopyalanır bir değişken olarak. S'ye bir değer atamak isim [index] değerini değiştirmez.

Dene: Böyle

public void addName(String sName){ 
    for (int i = 0; i < name.length; i++) { 
     if (name[i] == null) { 
      name[i] = sName; 
      break; 
     } 
    } 
} 
+0

Cevap ve açıklama için teşekkürler. Birçok cevap doğruydu. Ama sen daha hızlısın. :-) – Krishna

4

s = sName N. üyesi olarak aynı değere tutmak için kullanılan yerel bir değişken, değer atar olan dizi, ancak bellekte farklı bir yer kullanır.
Uzun hikaye kısa, s güncelleştirildiğinde, dizi öğesi değil.

bu deneyin: s

public void addName(String sName){ 
    for(int i= 0; i < name.length; i++){ 
     if(name[i]==null){ 
      name[i] = sName; 
      break; 
     } 
    } 
} 
+0

Cevap ve açıklama için teşekkür ederim. Kontrol edecek – Krishna

1

Someting

public void addName(String sName){ 
    for(int i=0; i<name.length; i++){ 
     if(name[i]==null){ 
      name[i] = sName; 
      break; 
     } 
    } 

}

+0

Teşekkür ederim Jonhid – Krishna