检查所有数组值是否不同
Check all array values are diffrent
所以我有 4 个 arraylist 值,我想看到它们都是不同的,所以不会有重复值(所有值都是字符串)
这是我的代码希望你能帮助我,我有点困惑我试着查找我开始为每个值组合许多 if 条件。
List<String>Answers=new ArrayList<String>();//מערך תשובות
Answers.add(f.getName().toString());//הוספת התשובה הנכונה
num = r.nextInt(30);
//if(db.getFlag(num).getName().toString()!= f.getName().toString())
//{
Answers.add(db.getFlag(num).getName().toString());//הוספת 3 תשובות רנדומליות
num = r.nextInt(30);
// }
// else
// num = r.nextInt(30);
Answers.add(db.getFlag(num).getName().toString());
num = r.nextInt(30);
Answers.add(db.getFlag(num).getName().toString());
您可以检查列表是否已经 contains
您的值:
String valToAdd = db.getFlag(num).getName().toString();
if(!Answers.contains(valToAdd)){
Answers.add(valToAdd);
}
此外,从您的评论中,我看到您尝试将字符串与 == 或 != 进行比较。
始终使用 string1.equals(string2)
比较字符串,因为它们是对象,而不是原始数据类型。
如果您不想重复,请选择 Set Interface
Set<String> namesSet=new HashSet<>();
namesSet.add("ABC");
namesSet.add("DEF");
namesSet.add("ABC"); // this will not be added because Set doesn't allow any duplicates
注意:Set#add()
方法returnsboolean表示元素是否添加成功
Use HashSet instead of ArrayList. Hash set ensures that you dont have duplicate values. Just use in the same way as you are implementing ArrayList.
e.g.
HashSet<String> answers=new HashSet<String>();
answers.add(f.getName().toString());
num = r.nextInt(30);
answers.add(db.getFlag(num).getName().toString());
num = r.nextInt(30);
answers.add(db.getFlag(num).getName().toString());
num = r.nextInt(30);
answers.add(db.getFlag(num).getName().toString());
所以我有 4 个 arraylist 值,我想看到它们都是不同的,所以不会有重复值(所有值都是字符串) 这是我的代码希望你能帮助我,我有点困惑我试着查找我开始为每个值组合许多 if 条件。
List<String>Answers=new ArrayList<String>();//מערך תשובות
Answers.add(f.getName().toString());//הוספת התשובה הנכונה
num = r.nextInt(30);
//if(db.getFlag(num).getName().toString()!= f.getName().toString())
//{
Answers.add(db.getFlag(num).getName().toString());//הוספת 3 תשובות רנדומליות
num = r.nextInt(30);
// }
// else
// num = r.nextInt(30);
Answers.add(db.getFlag(num).getName().toString());
num = r.nextInt(30);
Answers.add(db.getFlag(num).getName().toString());
您可以检查列表是否已经 contains
您的值:
String valToAdd = db.getFlag(num).getName().toString();
if(!Answers.contains(valToAdd)){
Answers.add(valToAdd);
}
此外,从您的评论中,我看到您尝试将字符串与 == 或 != 进行比较。
始终使用 string1.equals(string2)
比较字符串,因为它们是对象,而不是原始数据类型。
如果您不想重复,请选择 Set Interface
Set<String> namesSet=new HashSet<>();
namesSet.add("ABC");
namesSet.add("DEF");
namesSet.add("ABC"); // this will not be added because Set doesn't allow any duplicates
注意:Set#add()
方法returnsboolean表示元素是否添加成功
Use HashSet instead of ArrayList. Hash set ensures that you dont have duplicate values. Just use in the same way as you are implementing ArrayList.
e.g.
HashSet<String> answers=new HashSet<String>();
answers.add(f.getName().toString());
num = r.nextInt(30);
answers.add(db.getFlag(num).getName().toString());
num = r.nextInt(30);
answers.add(db.getFlag(num).getName().toString());
num = r.nextInt(30);
answers.add(db.getFlag(num).getName().toString());