Ciągłe dodawanie do Listy

0

Witam mam kłopot z ciągłym dodawaniem do listy. Mam utworzoną listę i na sucho dodaje do niej ludzi. Niestety jak inicjuję ją w metodzie to dodaje ona automatycznie wszystkie osoby, niby spoko ale po ponownym odpaleniu metody osoby dodawane są ponownie (te same). Jak zrobić żeby do listy osoby były dopisane tylko raz.

    List<ModelPerson> personList = new LinkedList<>();

    public List<ModelPerson> initList(List<ModelPerson> personList) {
        personList.add(new ModelPerson(1, "jan", "krk", 43));
        personList.add(new ModelPerson(2, "jan", "krk", 43));
        personList.add(new ModelPerson(3, "jan", "krk", 43));
        personList.add(new ModelPerson(4, "jan", "krk", 43));
        personList.add(new ModelPerson(5, "jan", "krk", 43));
        personList.add(new ModelPerson(6, "jan", "krk", 43));
        personList.add(new ModelPerson(7, "jan", "krk", 43));

        return personList;
    }

    public List<ModelPerson> findAll(){
        initList(personList);
        return personList;
    }
0

Dodaj ludzików do listy w konstruktorze klasy.

2

Odpalić metodę jeden raz :|

0

Jak koniecznie chcesz to tam zostawić, gdzie jest to uzależnij wywołanie metody od tego czy lista jest pusta.

0

Hej dzięki za pomysły, dorobiłam metodę i chyba działa, ale mimo wszystko proszę o jakiś komentarz.

public class RepositoryPerson {

    List<ModelPerson> personList = new LinkedList<>();

    public List<ModelPerson> initList(List<ModelPerson> personList) {
        personList.add(new ModelPerson(1, "jan", "krk", 43));
        personList.add(new ModelPerson(2, "jan", "krk", 43));
        personList.add(new ModelPerson(3, "jan", "krk", 43));
        personList.add(new ModelPerson(4, "jan", "krk", 43));
        personList.add(new ModelPerson(5, "jan", "krk", 43));
        personList.add(new ModelPerson(6, "jan", "krk", 43));
        personList.add(new ModelPerson(7, "jan", "krk", 43));

        return personList;
    }

    public final List<ModelPerson> listStart(){
        if(personList.isEmpty()) {
            initList(personList);
        }
        return personList;
    }

    public List<ModelPerson> findAll(){
        return personList;
    }
}
0

No spoko ale i tak nie wiadomo gdzie co jest wołane. W każdym razie teraz nie dodasz 2 razy do listy na pewno. Tylko po co robić jakieś opakowanie dla funkcji initList skoro można po prostu raz zawołać samą funkcję initList. Nie wołasz już tego za każdym razem w findAll więc nie powinno się wielokrotnie dodawać.

0

Tak dzięki już to jest poprawione - te elementy są w repozytorium, a cała logika - metody wywołujące są w serwisie.

1 użytkowników online, w tym zalogowanych: 0, gości: 1