Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/360.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
实现java.util.Collection时出现问题<;E>;和重写方法_Java_Collections - Fatal编程技术网

实现java.util.Collection时出现问题<;E>;和重写方法

实现java.util.Collection时出现问题<;E>;和重写方法,java,collections,Java,Collections,我有一个java任务,我应该在其中构造一个类似于多集的类。该类必须实现接口集合。我尝试过这样做,并声明了集合(find)中的所有方法。但是当我编译这段代码时,我得到了以下错误: error: TreeMultisetNy is not abstract and does not override abstract method retainAll(Collection<?>) in Collection 错误:TreeMultisetNy不是抽象的,并且不重写集合中的抽象方法ret

我有一个java任务,我应该在其中构造一个类似于多集的类。该类必须实现接口集合。我尝试过这样做,并声明了集合(find)中的所有方法。但是当我编译这段代码时,我得到了以下错误:

error: TreeMultisetNy is not abstract and does not override abstract method retainAll(Collection<?>) in Collection

错误:TreeMultisetNy不是抽象的,并且不重写集合中的抽象方法retainal(集合)
为什么会这样

这是我的密码:

import java.util.*;

public class TreeMultisetNy<E extends Comparable<E>> implements Collection<E> {
private Map<E, Integer> data = new TreeMap<E, Integer > ();

public boolean add(E ny) { 
    return true;
}
public boolean addAll(Collection<? extends E> c){
    return false;
}
public void clear() {

}
public boolean contains(E what) {
    return false;
}
public boolean containsAll(Collection<?> c) {
    return false;
}
public boolean equals(E what) {
    return false;
}
public int hashCode() {
    return 0;
}
public boolean isEmpty() {
    return false;
}
public Iterator<E> iterator() {
    return null;
}
public boolean remove(E what) {
    return false;
}
public boolean removeAll(Collection<?> c) {
    return false;
}
public boolean retainAll(Collection<?> c) {
    return false;
}
public int size() {
    return 0;
}
public Object[] toArray() {
    return null;
}
public Object[] toArray(Object[] a){
    return null; 
}
}
import java.util.*;
公共类TreeMultisetNy实现集合{
私有映射数据=newtreemap();
公共布尔加法(ENY){
返回true;
}
公共布尔addAll(集合c){
返回false;
}
公共布尔等于(E what){
返回false;
}
公共int hashCode(){
返回0;
}
公共布尔值为空(){
返回false;
}
公共迭代器迭代器(){
返回null;
}
公共布尔删除(E what){
返回false;
}
公共布尔removeAll(集合c){
返回false;
}
公共布尔保留(集合c){
返回false;
}
公共整数大小(){
返回0;
}
公共对象[]toArray(){
返回null;
}
公共对象[]到阵列(对象[]a){
返回null;
}
}
我发现这个问题: 但我不相信我犯了和那个家伙一样的错误,还是我错了


请给我一些提示,我多年来一直在编写php,但面向对象对我来说是新的

所有方法的正确签名如下所示:

boolean addAll(Collection<? extends E> c)
boolean containsAll(Collection<?> c)
boolean removeAll(Collection<?> c)
boolean retainAll(Collection<?> c)
在同一行中还有其他错误。您需要仔细检查您的类,确保每个方法都有正确的签名


有关详细信息,请参见。

所有方法的正确签名如下所示:

boolean addAll(Collection<? extends E> c)
boolean containsAll(Collection<?> c)
boolean removeAll(Collection<?> c)
boolean retainAll(Collection<?> c)
在同一行中还有其他错误。您需要仔细检查您的类,确保每个方法都有正确的签名



有关详细信息,请参见。

尝试使用方法签名
公共布尔保留(集合c)
而不是
公共布尔保留(集合c)
。和
公共布尔添加(Collection他们所说的“不是抽象的”是指,因为您的类不是抽象的,所以它必须实现所有的方法。您可以通过扩展java.util.AbstractCollection来减少工作量。您仍然需要实现一些方法,但实现的方法不如您现在所做的那么多。谢谢@TedHopp,它为我节省了一些错误!请尝试我们调用方法签名
public boolean retainal(集合c)
而不是
public boolean retainal(集合c)
。和
public boolean addAll(collection他们所说的“不是抽象的”是指,因为您的类不是抽象的,所以它必须实现所有的方法。您可以通过扩展java.util.AbstractCollection来减少工作量。您仍然需要实现一些方法,但实现的方法不如您现在所做的那么多。谢谢@TedHopp,它为我节省了一些错误!谢谢你,除了第一个错误之外,已经排除了所有的错误:)@user2254899:哪一个是第一个?“错误:TreeMultisetNy不是抽象的,并且不会覆盖集合中的抽象方法retainal(集合)”@user2254899:那么,它是否覆盖
retainal(集合)
,有这个确切的签名吗?很抱歉,我没有听你的。我现在用我当前的代码和剩余的错误更新了这个问题。谢谢你,除了第一个错误之外,所有的错误都被消除了:)@user2254899:哪一个是第一个?“错误:TreeMultisetNy不是抽象的,也不会覆盖抽象方法retainal(收集)在集合“@user2254899:那么,它是否用这个精确的签名覆盖了
retainAll(收集)
?对不起,我没有听清楚。我现在用我当前的代码和剩余的错误更新了这个问题