Java 测试'的实现&书信电报;T>';列表

Java 测试'的实现&书信电报;T>';列表,java,list,testing,collections,Java,List,Testing,Collections,我已经编写了自己的java.utils.List实现。现在我想测试它,但我无法用对象填充我的集合,因为每当我添加任何内容时,它都会显示expected: public static void main(String[] args) {} MyCollection col = new MyCollection(10); int[] tab = {1,2,4,5,6}; col.add(tab); 整个代码如下: 编辑 MyCollection col=新的MyCollection(10);

我已经编写了自己的java.utils.List实现。现在我想测试它,但我无法用对象填充我的集合,因为每当我添加任何内容时,它都会显示
expected

public static void main(String[] args) {}

MyCollection col = new MyCollection(10);
int[] tab = {1,2,4,5,6};
col.add(tab);
整个代码如下:


编辑

MyCollection col=新的MyCollection(10);
整数[]tab={1,2,4,5,6};
列添加(选项卡);

还是一样:/

您缺少您的类型。它是一个泛型类,所以应该是

MyCollection<Integer> col = new MyCollection<Integer>(10);
MyCollection col=新的MyCollection(10);

您缺少您的类型。它是一个泛型类,所以应该是

MyCollection<Integer> col = new MyCollection<Integer>(10);
MyCollection col=新的MyCollection(10);
更改:

MyCollection<Integer> col = new MyCollection<Interger>(10);
MyCollection col=新的MyCollection(10);
您需要指定MyCollection的T。

更改:

MyCollection<Integer> col = new MyCollection<Interger>(10);
MyCollection col=新的MyCollection(10);

您需要指定MyCollection的T。

您试图添加一个
int[]
作为
集合的项,该集合只接受
整数(或自动装箱
int
)项。只有当您有一个
集合
(其中添加的数组将是唯一的项)时,这才有效

要将
int[]
转换为
集合
,需要在其上循环:

int[] array = { 1, 2, 3, 4, 5 };
Collection<Integer> collection = new ArrayList<Integer>();
for (int item : array) {
    collection.add(item);
}
int[]数组={1,2,3,4,5};
集合集合=新的ArrayList();
for(int项:数组){
集合。添加(项目);
}
另见:

您试图添加一个
int[]
作为
集合
的项,该集合只接受
整数
(或自动装箱
int
)项。只有当您有一个
集合
(其中添加的数组将是唯一的项)时,这才有效

要将
int[]
转换为
集合
,需要在其上循环:

int[] array = { 1, 2, 3, 4, 5 };
Collection<Integer> collection = new ArrayList<Integer>();
for (int item : array) {
    collection.add(item);
}
int[]数组={1,2,3,4,5};
集合集合=新的ArrayList();
for(int项:数组){
集合。添加(项目);
}
另见:

此处的一般含义不会导致错误,您只会得到一个警告,因为您添加到列表中的任何对象都会被擦除到对象中,因此您可以添加任何对象,并且会失去类型安全性

您已经实例化了一个列表,其成员是单个对象(无论类型如何),但您正在尝试将数组添加为单个成员。你有几个选择,但我会坚持:

List<Integer> myCollection = new MyCollection<Integer>(10);
myCollection.addAll(Arrays.asList(1, 2, 3, 4, 5, 6));
List myCollection=新的myCollection(10);
addAll(Arrays.asList(1,2,3,4,5,6));
如果您真的打算创建一个数组列表,您可以执行以下操作:

List<Integer[]> myCollection = new MyCollection<Integer[]>(10);
myCollection.add(new Integer[]{1,2,3,4,5,6});
List myCollection=新的myCollection(10);
add(新整数[]{1,2,3,4,5,6});
几点注意:

  • 编程到接口(参见我的示例)
  • 您的实现称为
    MyCollection
    ,但实际上它是List的实现,因此像
    MyList
    这样的名称似乎更合适,除非您计划实际扩展
    集合
  • 我假设这只是一个练习,但我看不出扩展
    列表的意义。您知道
    java.util.ArrayList
    存在,对吗

此处的一般含义不会导致错误,您只会得到一个警告,因为您添加到列表中的任何对象都会被擦除到对象中,因此您可以添加任何对象,并且会失去类型安全性

您已经实例化了一个列表,其成员是单个对象(无论类型如何),但您正在尝试将数组添加为单个成员。你有几个选择,但我会坚持:

List<Integer> myCollection = new MyCollection<Integer>(10);
myCollection.addAll(Arrays.asList(1, 2, 3, 4, 5, 6));
List myCollection=新的myCollection(10);
addAll(Arrays.asList(1,2,3,4,5,6));
如果您真的打算创建一个数组列表,您可以执行以下操作:

List<Integer[]> myCollection = new MyCollection<Integer[]>(10);
myCollection.add(new Integer[]{1,2,3,4,5,6});
List myCollection=新的myCollection(10);
add(新整数[]{1,2,3,4,5,6});
几点注意:

  • 编程到接口(参见我的示例)
  • 您的实现称为
    MyCollection
    ,但实际上它是List的实现,因此像
    MyList
    这样的名称似乎更合适,除非您计划实际扩展
    集合
  • 我假设这只是一个练习,但我看不出扩展
    列表的意义。您知道
    java.util.ArrayList
    存在,对吗

这一个是正确的:泛型不适用于数组,至少没有任何有用的方式(除了varargs)。@Esko:实际上,varargs仅在它是
整数[]时才有效。
。我删除了错误的答案提示:otred this:仍然是“非法开始类型”。;“预期。
预期”显然不支持增强for循环。使用真正的JavaIDE/编辑器。如果你坚持使用在线的,看看。那里运行良好。但是,我不建议将其用作真正的开发工具。我猜我的neatbeans崩溃了:/这一个是正确的:泛型不能与数组一起工作,至少没有任何有用的方式(除了varargs)。@Esko:事实上,varargs只有在它是
整数[]
时才起作用。我删除了错误的答案提示:otred this:仍然是“非法开始类型”。;“预期。
预期”显然不支持增强for循环。使用真正的JavaIDE/编辑器。如果你坚持使用在线的,看看。那里运行良好。但是,我不建议将其用作真正的开发工具。我想我的neatbeans崩溃了:/