单词bean文件
例如一个app背诵四级词库
四级词库有3500个单词。
单词类 Word 有以下几个属性:
- id //单词的编号
- spelling // 单词的拼写
- phonetic_alphabet // 音标
- meanning // 翻译
具体app肯定要用sqlite来创建表,这里就直接把所有的词存在一个List里。
算法
allList 存储着所有单词。
1.打乱列表的顺序(可选)
//打乱顺序的算法
public int[] random() {
int temp; // 数字缓冲
int temp1;
int rand[]; // 打乱的数组
rand = new int[listLength]; //初始化rand 为单词列表的长度 listLength : 单词列表长度
for (int i = 0 ; i < listLength; i++) {
rand[i] = i; //全部赋值
}
for (int i = 0 ; i < listLength; i++) {
temp = rand[i];
temp1 = (int)(Math.random()*listLength); // 随机交换
rand[i] = rand[temp1];
rand[temp1] = temp;
}
return rand;
}
2.获得选项
public int[] options (String wordId) {
int id = Integer.parseInt(wordId); // 单词id
int optionNum[] = new int[4]; // 选项的数组
for (int i = 0; i < 4; i++) {
optionNum[i] = (int)(Math.random()*listLength.size()); // 为optionNum 数组随机赋值,随机范围为3500之间
if ( i > 0){
for (int j = 0; j < i; j++) {
if ( optionNum[j] == optionNum[i]) { //如果遇到赋值相同的,则重新赋值
i--;
break;
}
}
}
}
boolean isExist = true; //数组中存在正确选项
for (int k = 0; k < 4; k++) {
if ( optionNum[k] == (id) ) { // id为单词的id
isExist = false;
rightAns = k; //正确选项为k
break;
}
}
//如果不存在则随机一个4以内的数字 ,来放正确答案
if (isExist) {
rightAns = (int)(Math.random()*4);
optionNum[rightAns] = id;
}
return optionNum;
}