在第二次尝试中将arraylist添加到arraylist中添加重复数据

时间:2018-03-08 03:47:18

标签: java android json arraylist multidimensional-array

我尝试运行此代码,我全局设置了2个arraylist, answerList和questionList 。首先我将数据添加到答案对象,然后将其放在answerList中,之后我将该answerList放入问题对象。最后我将问题对象放入questionList。首先添加questionList变为如下:

[
    {
        "mAnswers":[
            {
                "**mChoiceId":1**
            }
        ],
        "mQuestionId":4
    }
] 

然后我将新数据添加到questionList中,这就是结果:

[
    {
        "mAnswers":[
             {
                "**mChoiceId":5**
             }
        ],
        "mQuestionId":4
    },
    {
        "mAnswers":[
            {
                "**mChoiceId":5**
            }
        ],
        "mQuestionId":5
    }
]

正如你所看到的,第一个mChoiceId是1,其中questionId是4,在我添加新数组后,第一个mChoiceId被更新为第二个mChoiceId的值。当我添加新数组时我想要的是第一个mChoiceId仍然是1并且没有被我刚刚添加的新mChoiceId更新

public void onClick(int position, Choice question) {

if (questionList.size() == 0) {


        insertAnswerToQuestion(question.getQuestionId(),question.getChoiceId());


    } else {
        for (int j = 0; j < questionList.size(); j++) {

            if (checkIfQuestionIdSend(questionList.get(j).getmQuestionId(), question.getQuestionId())) {
                questionList.get(j).getmAnswers().get(0).setmChoiceId(question.getChoiceId());
                isHasSameQuestionId = true;
            } else {
                if (j == questionList.size() - 1) {
                    if (!isHasSameQuestionId) {
                        insertAnswerToQuestion(question.getQuestionId(),question.getChoiceId());
                    }
                }
            }
        }

    }
    isHasSameQuestionId = false;
}
private void insertAnswerToQuestion(int QuestionId, int ChoiceId){
    answerList.clear();

    Answer answer = new Answer();
    answer.setmChoiceId(ChoiceId);

    answerList.add(answer);
    asia.popbox.app.V2.Network.BodyApiReq.FreeGiftAnswerPostBody.Question quest = new asia.popbox.app.V2.Network.BodyApiReq.FreeGiftAnswerPostBody.Question();

    quest.setmAnswers(answerList);
    quest.setmQuestionId(QuestionId);
    questionList.add(quest);

}

这是问题类:

package asia.popbox.app.V2.Network.BodyApiReq.FreeGiftAnswerPostBody;

import java.util.List;

public class Question {

private List<Answer> mAnswers;
private int mQuestionId;

public Question(List<Answer> mAnswers, int mQuestionId) {
    this.mAnswers = mAnswers;
    this.mQuestionId = mQuestionId;
}
public Question() {

}

public List<Answer> getmAnswers() {
    return mAnswers;
}

public void setmAnswers(List<Answer> mAnswers) {
    this.mAnswers = mAnswers;
}

public int getmQuestionId() {
    return mQuestionId;
}

public void setmQuestionId(int mQuestionId) {
    this.mQuestionId = mQuestionId;
}

}

这是答案类:

package asia.popbox.app.V2.Network.BodyApiReq.FreeGiftAnswerPostBody;



public class Answer {

private int mChoiceId;

public int getmChoiceId() {
    return mChoiceId;
}

public void setmChoiceId(int mChoiceId) {
    this.mChoiceId = mChoiceId;
}
public Answer( ) {
}
public Answer(int mChoiceId) {
    this.mChoiceId = mChoiceId;
}
}

0 个答案:

没有答案