繁体   English   中英

使用泛型类中的ArrayList实现集合

[英]Implementation of a set using ArrayList in a generic class

我试图使用arrayList实现一个集合,我想做2个构造函数。 一个空的和一个得到一个数组并将其添加的数组:

        public class set<E> {
        Set <E> setList;
        ArrayList<E> elementList;

        public set(){

            setList = (Set<E>) new ArrayList();
        }

        public <E> set(E[] inputArray){
            super();
            for(E element: inputArray) // not working
                setList.add( element);
            // setList.addAll(Arrays.asList(inputArray)); - not working either
        }

我在第二个构造函数时遇到错误:

“类型集中的方法add(E)不适用于参数(E)”

您需要在构造函数声明中删除<E>

    public <E> set(E[] inputArray){
           ^^^ Get rid of this

照现状,您正在创建另一个不相关的泛型类型参数E ,该参数在set<E>中遮盖了E

将方法set(E[])更改如下:

public Set(E[] inputArray) {
    super();
    for(E element: inputArray) {
        setList.add(element);
    }
}

原因:

类型E已经是使用Set<E>创建的通用类型,因此,您不需要在构造函数中重新定义E

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM