找不到尺寸方法的arraylist大小

时间:2014-05-20 07:57:24

标签: java arraylist

如果我们试图找到一个arraylist的大小(这不是常规的arraylist,它是一个自定义的arraylist,下面的重要方法),而无法访问.size()方法,我们将如何去做呢? / p>

arraylist类有一个.hasNext()和.next()方法

.hasNext()方法告诉列表中是否还有其他元素

.next()方法移动到列表中的下一个元素

如果它是一个linkList,我只是从头开始,在循环中使用.hasNext()和.next()方法来计算大小。但是在arraylist中没有头脑,我认为这是我的主要问题。

我想出了这个,但我认为没错。

public int getSize(SomeArrayList<String> list){
    int size=0;
    for(int i=0;list.get(i).hasNext();i++){
       size++;}
    return size;

5 个答案:

答案 0 :(得分:3)

list.toArray().length

会做到这一点。

答案 1 :(得分:1)

您可以尝试以下代码:

public int getSize(ArrayList<String> list) {
    int i = 0;
    for(String s : list) {
        i++;
    }
    return i;
}

答案 2 :(得分:0)

尝试使用此代码:

 int size = 0;
    Iterator<String> it =list.iterator(); 
    while (it.hasNext()){
      it.next();
     size++;
    }
    return size;

答案 3 :(得分:0)

也许是这样的?

int size = 0;
try{
    while(true){
        list.get(size);
        size++;
    }
} catch(IndexOutOfBoundException e){
}

如果您将超出范围,将抛出异常,您将获得没有任何.size()。length

的大小

答案 4 :(得分:0)

在你的代码中list.get(i).hasNext()闻起来。您没有提到是否存在get(int index)方法,但如果我们假定存在,则它应该返回一个没有hasNext()方法的String对象。你的循环可能如下所示:

while (list.hasNext()){ size++; list.next(); }

我先做一个空检查,但我不清楚你怎么能确定列表在开头不是空的。

你的数据结构对我来说很奇怪,因为它看起来更像是迭代器而不是真正的列表。