2016-04-08 12 views
-1

Bir ArrayList öğesinin bu işi çok daha basit yapacağını biliyorum, ancak bu yalnızca diziler içindir, bu yüzden ona takılıyorum.Belirli dizi öğelerini null olarak ayarlamak, sonra bu öğeleri dizinin sonuna taşımak

public boolean remove(String name) { 
    int temp = 0; 
    for (int i = 0; i<counter; i++) { 
     if (friends[i].equals(name)) { 
      friends[i]=null; 
      for (int j = i; j > counter; j++) { 
       friends[j] = friends[j+1]; 
      } 

      return true; 
     } 
    } 

    return false; 
} 

istediğim sonucudur:

String[] friends = {"Sean", "James", "Andrew", "Garfield", "Patrick"}; 
myfriends.remove("James"); 
System.out.println(Arrays.toString(friends)); 

konsol çıkışı:

Bu benim defa yöntemidir Sean, Andrew, Garfield,Patrick, null

cevap

1

yararlı olur bir hata ayıklayıcı kullanarak nerede olduğunu.

Ben j < counter için j > counter değiştirip sonunda friends[counter-1] = null; set olur, sen yapacaksın ilk şey olarak friends[i] = null; ayarı hiçbir nokta üzerine yazmak olduğunu.

NOT: Kodda kopya olmadığını varsayarsınız.

+1

Haha! ofc, j JohnBanana

+0

@JohnBanana hata ayıklayıcınızda, kodun asla döngüye girmediğini görebilirsiniz. –

+0

Ne demek istiyorsun, asla döngüye girmiyorsun? – JohnBanana