Reputation: 67
I am learning java. I have a problem with arraylist.
I added codes. can you help me please?
I created a model class and its name is file.
Also, I added setters and getters.
I created an object of this class in the main activity and its name is "saved".
I added some elements in the arraylist.
But when I write the arraylist, all of the elements are the last added elements.
'''
public class file {
String language;
String targetLanguage;
int grade;
public String getLanguage() {
return language;
}
public void setLanguage(String language) {
this.language = language;
}
public String getTargetLanguage() {
return targetLanguage;
}
public void setTargetLanguage(String targetLanguage) {
this.targetLanguage = targetLanguage;
}
public int getGrade() {
return grade;
}
public void setGrade(int grade) {
this.grade = grade;
}
}
public class MainActivity extends AppCompatActivity {
ArrayList<file> array = new ArrayList<>();
dosya saved =new file();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
saved.setLanguage("English");
saved.setTargetLanguage("Turkish");
saved.setGrade(10);
array.add(saved);
saved.setLanguage("Spanish");
saved.setTargetLanguage("French");
saved.setGrade(20);
array.add(saved);
saved.setLanguage("Italian");
saved.setTargetLanguage("Finnish");
saved.setGrade(30);
array.add(saved);
Log.d("result 1", array.get(0).getLanguage());
Log.d("result 2", array.get(1).getLanguage());
Log.d("result 3", String.valueOf(array.get(2).getLanguage()));
}
}
'''
results: result 1: Italian result 2: Italian result 3: Italian
Thank in advance
Upvotes: 0
Views: 59
Reputation: 7175
You are storing the reference in List, create new saved
object before adding to List
List<file> array = new ArrayList<>();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
dosya saved =new file();
saved.setLanguage("English");
saved.setTargetLanguage("Turkish");
saved.setGrade(10);
array.add(saved);
saved =new file();
saved.setLanguage("Spanish");
saved.setTargetLanguage("French");
saved.setGrade(20);
array.add(saved);
saved =new file();
saved.setLanguage("Italian");
saved.setTargetLanguage("Finnish");
saved.setGrade(30);
array.add(saved);
Log.d("result 1", array.get(0).getLanguage());
Log.d("result 2", array.get(1).getLanguage());
Log.d("result 3", String.valueOf(array.get(2).getLanguage()));
}
}
Upvotes: 1