2016-04-13 15 views
0

Temel olarak, bir liste öğesini bir dizi listesinden yeniden isimlendirmeye çalışıyorum. ben böyle bir sınıf kullanıyorum gibi tipik arrayList.set(index, "something")Dizideki liste öğesini nasıl yeniden adlandırabilirim?

Yani ben arrayList.set yönteminin ikinci parametresi vardır tahmin ediyorum} ... benim durumumda

public class Song { 

private long id; 
private String title; 
private String artist; 

public Song(long songID, String songTitle, String songArtist) { 
    id=songID; 
    title=songTitle; 
    artist=songArtist; 
} 

public long getID(){return id;} 
public String getTitle(){return title;} 
public String getArtist(){return artist;} 

çok yardımcı olmuyor Bu sınıfla ilişkili olmalıyım ve bunu nasıl yapacağımdan emin değilim. Örneğin, başlığı değiştirmek istersem, arrayList.set(index, Song(null, newTitle, null) gibi bir şey kullanır mıyım? adlandırmak Şarkıyı bulmak için dizinin get(int index) yöntemi kullanmak sonra

class Song { 

    // ... 

    public void setTitle(String title){ 
     this.title = title; 
    } 

    public void setArtist(String artist){ 
     this.artist = artist; 
    } 
} 

Ve:

cevap

2

Sen nesneye setter ekleyebilir.

arrayList.get(index).setTitle("new Title"); 

endeksinde dizisinde mevcut varolan şarkı adlandırmak olmaz arrayList.set(index, Song(null, newTitle, null) yapmak. Bu yeni bir Şarkı yaratacak ve verilen dizindeki bir mağazayı değiştirecektir. senin idnull olamaz çünkü

Ve BTW new Song(null, newTitle, null) derlemek olmaz.

+0

Teşekkürler! Çalışmayı başardım. Ancak, uygulamayı yeniden başlattıktan sonra kendini sıfırlar gibi görünüyor ... –

+0

Bu, verilerinizi nasıl kurtardığınıza bağlıdır. – Nirekin

+0

Gönderiyi şarkı bilgilerini alan yöntemle güncelledim. –

İlgili konular