【发布时间】:2013-10-30 08:49:58
【问题描述】:
我在 java 中有一个自定义的通用链表(它不是 java 的 LinkedList 或任何集合)。我的链表有一个节点、一个 ListInterface、实际的 LinkedList、一个类文件和一个带有 main 方法的文件。这个链表和类应该构成一个 DVD 库存管理器。我要做的是遍历列表并检查用户传入的字符串是否等于链接列表中对象之一的变量之一的字符串。
这是我目前所拥有的:
if (movies.isEmpty()) {
movies.add(new Dvd(userMovie), movies.length()+1);
} else if (!movies.isEmpty()) {
for (int i = 1; i <= movies.length(); i++) {
if (movies.get(i).getTitle().equals(userMovie)) {
movies.get(i).addCopy();
} else if (!movies.get(i).getTitle().equals(userMovie)) {
movies.add(new Dvd(userMovie), movies.length()+1);
}
}
}
英文: 如果电影链表为空,则添加已传入的电影(userMovie)。 否则如果movies链表不为空,则检查链表中的每一项,看看传入的movie是否已经存在。如果它已经存在,请添加一个副本。否则如果传入的电影不存在,则将该电影添加到列表中。
除了最后一部分之外,这一切都有效。
我在空的时候添加一部电影并得到这个:
Star Wars 1 // one copy of star wars has been added
然后我再次添加同一部电影并更新副本:
Star Wars 2
然后我尝试添加不同的电影,它从两个副本而不是 1 个开始:
Harry Potter 2
然后我尝试再次添加同一部电影以查看会发生什么,它给了我这个:
Star Wars 1
Harry Potter 3
Harry Potter 2
【问题讨论】:
-
您不需要检查电影在
else块中是否为空;这是给定的,因为if和else的意思。else仅在不满足if的条件时发生。
标签: java for-loop linked-list generic-list