了解Java解释

Rob*_*Rob 0 java

我正在做一个练习,我需要实现一个课程,并且很难理解解释.

这是解释/练习:

 * Adds all of the elements in the specified set, for which it is
 * possible, to this set.
 * post: all elements, for which it is possible, in the
 * specified set are added to this set.
 * @return true if this set changed as a result of the call
Run Code Online (Sandbox Code Playgroud)

这就是答案

public boolean addAll(SimpleSet<? extends E> s) {
    Iterator<? extends E> it = s.iterator();
    boolean changed = false;
    while (it.hasNext()) {
        changed = add(it.next());
    }
    return changed;
}
Run Code Online (Sandbox Code Playgroud)

这就是我自己尝试做的事情,但是我很难将自己的脑袋缠绕在我应该做的事情上.

public boolean addAll(SimpleSet<? extends E> s){
        Iterator<? extends E> itr = s.iterator();
        while(itr.hasNext()){
            add(itr.next());
        }
    return true;
}
Run Code Online (Sandbox Code Playgroud)

感谢任何可能的帮助,

鲍比.

Sed*_*nus 5

事实上,你的回答与提供的答案没有太大的不同,它会添加给出的所有元素.你没考虑什么?

根据方法的定义,它应该返回一个布尔值,指示该组是否由于添加元素而改变.在您的实现中,您只返回true,这意味着您没有考虑您尝试添加的元素何时已存在于集合中.虽然给定的实现只检查最后一个不正确的实现.

请记住,根据定义,Set不能包含重复的元素,因此布尔值只是让调用者知道某些内容是否实际发生了变化.