java класс и arraylist - PullRequest
       14

java класс и arraylist

0 голосов
/ 21 апреля 2020

Я учусь java. У меня проблема с arraylist.
Я добавил коды. не могли бы вы мне помочь?
Я создал класс модели, имя которого - file.
Также я добавил сеттеры и геттеры.
Я создал объект этого класса в основном упражнении, и его имя - " сохранено ".
Я добавил некоторые элементы в массив.
Но когда я пишу список, все элементы являются последними добавленными элементами.

''' 
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: итальянский результат 3: итальянский

Заранее благодарен

1 Ответ

2 голосов
/ 21 апреля 2020

Вы сохраняете ссылку в списке, создаете новый объект saved перед добавлением в 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()));

}
}
...