【发布时间】:2015-02-03 05:53:17
【问题描述】:
如果存在,我如何从该集合中删除指定的项目?如果集合被修改,则返回 true,否则返回 false。
目前,除了 remove() 方法外,一切都正常。
import java.util.Iterator;
public class Set300<T> implements Iterable<T> {
private Bag<T> bag = new Bag<T>();
public boolean contains(T item) {
for (T i : bag){
if (i.equals(item)) return true;
}
return false;
}
public boolean add(T item) {
if (contains(item)){
return false;
}
else{
bag.add(item);
return true;
}
}
public boolean remove(T item) {
if (contains(item)){
return false;
}
else{
Iterator <T> i = bag.iterator();
while (i.hasNext() == true)
if (i.next().equals(item));{
i.remove(item);
}
return true;
}
}
public Iterator<T> iterator() {
return bag.iterator();
}
}
如果包中不包含该项目,则 remove() 方法应返回 false;否则,将其删除。 它不返回真假,也不从集合中删除一个数字
【问题讨论】:
-
如果包含item,返回false?
-
什么'不起作用'?
-
@sqrd 尝试从 if 语句中删除
;,在此处删除分号if (i.next().equals(item));{ -
@SotiriosDelimanolis:如果包中不包含该物品,则返回 false;否则,删除它。
-
@ramp: remove() 方法不返回真假,也不从集合中删除数字