Динамическое создание ArrayList и добавление объектов в каждый ArrayList - PullRequest
0 голосов
/ 31 марта 2019

Я пытаюсь создать несколько ArrayList динамически, а также хочу добавить объекты к каждому.

Каждый ArrayList не должен быть больше среднего значения всех содержащихся в нем объектов, которое составляет Player.getNum(), а средние значения рассчитываются до этого вызова. Кроме того, это должно быть перемешано.

    Bundle bundle = this.getArguments();
    getArrayList = (ArrayList<Player>) getArguments().getSerializable(KEY_PLAYERS);
    getArrayList = (ArrayList<Player>) getArrayList.clone();
    int teams = bundle.getInt("number_of_teams" , 0);
    double avg = bundle.getDouble("avg" , 0);

    getListToCreateLists(getArrayList , teams , avg);
    onClick(refreshButton);
    onClick(backFromShowinBtn);
    return v;
}

private boolean checkPlayerIfExists(String name, ArrayList<Player> list) {
    for (Player o : list) {
        if (o != null && o.getName().equals(name)) {
            return true;
        }
    }
    return false;

}

public void onClick(View v) {
    v.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {

            switch (v.getId()) {
                case R.id.backFromShowinBtn:
                    FragmentManager fm = getActivity().getSupportFragmentManager();
                    fm.popBackStack();
                    break;
                case R.id.refreshButton:
                    ((MainActivity2) getActivity()).refresh();
                    break;
                default:
                    break;
            }
        }
    });
}

public void getListToCreateLists(ArrayList<Player> bigList , int teams , double avg) {

    //bigList = number of objects the user insert;
    // teams = number of teams the user insert;
    // avg = the avarge of objects.getnum() / teams;
    //object.getnum() = Player (object) int num (value);
    Log.d(TAG, "GetArrayList: " + getArrayList.size() + ",--------- avg " + avg + ", ------ teams " + teams);

    ArrayList<Player>[] d = (ArrayList<Player>[]) new ArrayList[teams];
    for (int i = 0; i < teams; i++) {
        d[i] = new ArrayList<Player>();
    }

    Collections.shuffle(bigList);
    for (int i = 0; i < bigList.size(); i++) {

        Player current = bigList.get(i);
        //here should be the method to insert objects randomly to all the arraylists that has been created above.. 

    }
}
...