【发布时间】:2012-10-19 09:35:27
【问题描述】:
我知道我的 add 方法是正确的:
public void add(Object object) {
if (!contains(object) && size !=maxObjects) {
set[size] = object; size++;
}
else
System.out.println("Already exists.");
}
因为我得到如下打印输出:
Set [maxObjects=8, set=[a, 7, null, null, null, null, null, null], count=2]
true (I ask if it contains a value)
false " "
Set [maxObjects=8, set=[a, 7, b, Valencia, 24, s, Victoria, null], count=7]
Set [maxObjects=8, set=[a, 7, b, Valencia, 24, s, Victoria, 4234], count=8]
我尝试了两种相同的删除方法(一种是我创建的;另一种是我几天前在 Stack 上发现的最相似的问题。)
第一次删除:
public boolean remove(Object object) {
if (contains(object)) {
object = null;
return true;
}
System.out.println("The object doesn't exist to delete.");
return false;
}
另一个删除:
public boolean remove(object object) {
for (int i=0; i<(size-1); i++) {
while (!contains(object) && size <= maxObjects) {
set[i] = set[i+1]; size--; return true;
}
}
System.out.println("Doesn't exist.");
return false;
}
任何帮助都会很棒!
【问题讨论】:
-
很抱歉,但是(感谢@TheStijn 的未编辑版本)您的代码看起来很糟糕。并且无论如何都不应该编译(
object)。不知怎的,我想起了this comic... -
在实现集合时为什么要称其为列表?
-
嗯,我看到的只是格式更正。正确的格式是给程序员的。现在是凌晨 5 点,我将在两个小时后“开始”我的一天。我很抱歉。虽然我笑了漫画,但我还是被冒犯了(哈!)。
-
我不是有意添加混淆。这是来自 Set ADT 实现,但我们正在研究列表。确实该睡觉了。