kadir yapar
kadir yapar

Reputation: 67

java class and arraylist

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

Answers (1)

Vikas
Vikas

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

Related Questions