import java.util.ArrayList;
public class list {
protected ArrayList<String> a = new ArrayList<String>();
public boolean ad(String aa)
{
boolean t=true;
a.add(aa);
for(String value : courses)
{
if(a.contains(value))
{
a=false;
}
else
{
a=true;
}
}
return a;
}
}
如果arraylist课程包含重复的元素,则此程序应返回false。如果我们插入新元素,则返回true。
上述代码的预期输出为
true
但它只对任何条件返回false。
答案 0 :(得分:4)
您只需使用ArrayList#contains
来验证List
中是否已存在某个元素。
public boolean addCourse(String course) {
if (courses.contains(course)) {
return false;
}
return courses.add(course);
}
答案 1 :(得分:1)
您正在列表中添加课程,然后迭代列表,因此它总是给您真实的。 ArrayList允许重复。
if(courses.contains(value))
将始终返回true,因为您在arraylist中添加了此前的课程。
建议:如果你想避免重复,你应该使用Set than list。
答案 2 :(得分:1)
如何使用HashSet来保存课程,而不是使用ArrayList?
http://beginnersbook.com/2013/12/hashset-class-in-java-with-example/
答案 3 :(得分:1)
您可以采用简单的方法:
For每次执行else阻止所以。删除其他阻止它将起作用。
var connectionString = $"mongodb://{username}:{password}@{host}/{database}";
var mongoclient = new MongoClient(connectionString);
答案 4 :(得分:1)
尝试以下代码:
import java.util.ArrayList;
public class list {
protected ArrayList<String> courses = new ArrayList<String>();
protected String temp = "";
public list(String str, String str2) {
}
public boolean addCourse(String course) {
boolean a = true;
if (courses.isEmpty()) {
courses.add(course);
temp = course;
} else {
if (temp.equalsIgnoreCase(course)) {
a = false;
temp = "";
} else {
a = true;
courses.add(course);
temp = course;
}
}
return a;
}
public static void main(String[] args) {
list inst = new list("John", "WIU");
System.out.println(inst.addCourse("CS560"));
System.out.println(inst.addCourse("CS500"));
}
}