如何在泛型类中创建方法

时间:2012-10-06 07:12:40

标签: java generics

public class MyArray<V> {
    private ArrayList<V> elements;

    // Creates a MyArray of size "size" and fill it with null objects.
    // Throws NegativeArraySizeException if "size" is negative.
    public MyArray(int size) throws NegativeArraySizeException

我如何创建这个数组我对使用的泛型类感到困惑,并用空对象填充它意味着将它留空?

1 个答案:

答案 0 :(得分:4)

首先,不需要在您提供的代码中创建Java数组。您需要做的是创建并填写ArrayList<V>。这很简单:

public MyArray(int size) throws NegativeArraySizeException {
    elements = new ArrayList<V>(size);  // 'size' is the capacity argument
    for (int i = 0; i < size; i++) {
        elements.add(null);
    }
}

至于评论中提到的其他两个构造函数,我看不出你的困难是什么。实际上,使用适当的参数调用elements.add适当的次数只是直接的Java代码。

(我不打算给你代码,因为要么你已经能够自己写代码,要么你需要学习如何去做。)


  

如果我创建另一个名为my array的数组和字符串元素,我怎样才能有一个复制方法将元素从第一个复制到第二个?是否有内置的方法?

这没有多大意义。但是有一些库方法可用于创建作为现有数组的副本的数组,以及作为现有集合副本的集合。您可以在MyArray构造函数中使用它们。查看Arrays类,Collections类以及各种集合(即List / Set / Map)实现类的复制构造函数。