2012-10-01 160 views
0

首先我对Java没有经验。Java以相同类别的另一种方法调用方法

得到我的问题,我正在用我自己的方法实现我自己的列表。

public class MyList<E> implements List<E>{ 
..... 

一个这个方法返回我的列表的大小

public int getSize(){ 
.... 
} 

然后,我有其他两种方法会更简单,如果我能以某种方式将此方法应用于我的名单。怎么会这样?

我有了比较,如果给定的名单等于这个名单

public boolean equals(Lista<E> list){ 
.... 
} 

我虽然对第一比较两个列表的大小的方法,如果他们不匹配,则返回false 。如果他们这样做,它会继续比较每个元素。这可能吗?我将如何应用getSize?如果这是不可能的,我会比较元素。

我的另一种方法必须返回每个元素

public Object[] toArray() { 
    E myarray = new E[??] 

数组正如你看到的,我不”知道如何声明数组。我必须事先知道我的名单的大小。我虽然关于通过作为论点(这将解决问题),但我需要解决这个问题。

回答

0

只需使用getSize()方法:

E myarray = new E[getSize()]; 
+2

'新的E [']'不能编译。 :) –

1

你叫list.getSize(),就像这样:

if (list.getSize() != this.getSize()) { 
    return false; 
} 
+0

我明白了。我用这个来引用这个列表。谢谢! – Alessandroempire

1

因为你不能用Java创建通用的数组,你就必须做

public Object[] toArray() { 
    E[] myarray = (E[]) new Object[this.getSize()]; 
相关问题