我的第一语言是PHP :)和Android和Java的新手。我试图了解Java中的数组系统,因为它与PHP完全不同。到目前为止,理解Java有两种不同类型的数组(如果我错了,请纠正我)。 arr[]
和ArrayList<>
也不同于Java中的PHP,我们必须为数组定义datatype
。
我正在制作一个简单的测验应用程序(无数据库),只是为了学习。为此,我想创建一个包含问题,答案和类似选项的多维数组。
{
{
question,
{option1, option2, option 3, ...}
answer
}
{
question,
{option1, option2, option 3, ...}
answer
}
{
question,
{option1, option2, option 3, ...}
answer
}
...
}
我了解使用arr[][] = {}
创建多维数组的基础知识,但我不知道如何为选项添加另一个数组以获得与上述相似的结果。
所以我想用这种方式填充列表。
答案 0 :(得分:2)
您可以通过创建自己的模型类来实现
public class MyCustomModel {
String question;
List<String> options;
String answer;
public MyCustomModel(String question, List<String> options, String answer){
this.question = question;
this.options = options;
this.answer = answer;
}
// getter and setter methods here
}
然后简单地制作一个array list
private ArrayList<MyCustomModel> myData;
然后将数据添加到列表
myData.add(new MyCustomModel("question 1",myListOfOptions, "answer"));
希望这会有所帮助:)
答案 1 :(得分:1)
//您可以这样,添加模型类
public class Quizmodel {
String mAnswer = new String();
String mQuestion = new String();
List<String> mOptions = new ArrayList<>();
public String getmQuestion() {
return mQuestion;
}
public void setmQuestion(String mQuestion) {
this.mQuestion = mQuestion;
}
public String getmAnswer() {
return mAnswer;
}
public void setmAnswer(String mAnswer) {
this.mAnswer= mAnswer;
}
public List<String> getmOptions() {
return mOptions;
}
public void setmOptions(List<String> mOptions) {
this.mOptions = mOptions;
}
}
//在主类中设置模型类的值;
List<Quizmodel> mQuizList = new ArrayList<>();
String mQuestion = new String();
mQuestion = "Ask Question Here ?";
List<String> mOptionsList = new ArrayList<>();
mOptionsList.add("A1");
mOptionsList.add("A2");
mOptionsList.add("A3");
Quizmodel mModel = new Quizmodel();
mModel.setmQuestion(mQuestion);
mModel.setmOptions(mOptionsList);
mModel.setmAnswer("A2");
mQuizList.add(mModel);
//String m = "";
for (int ind = 0; ind < mQuizList.size(); ind++) {
System.out.println(mQuizList.get(ind).getmQuestion());
// Log.v("response",mQuizList.get(ind).getmQuestion());
for (int index = 0; index < mQuizList.get(ind).getmAnswers().size(); index++) {
System.out.print(mQuizList.get(ind).mAnswers.get(index) + " ");
// m = m + mQuizList.get(ind).mAnswers.get(index) + " ";
}
System.out.println(mQuizList.get(ind).getmAnswer());
}
//只需按照以下步骤操作,您将获得所需的结果。 //添加了示例输入和输出。
示例输出
在这里提问?
答案选项
A1 A2 A3
A2
//我希望它会带来方便。