`
恶魔眼睛
  • 浏览: 10100 次
  • 性别: Icon_minigender_1
  • 来自: 昆明
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

ArrayList,LinkedList部分方法的比较

阅读更多
LinkedList取元素方法:
    public E get(int index) {
        return entry(index).element;
    }
    private Entry<E> entry(int index) {
        if (index < 0 || index >= size)
            throw new IndexOutOfBoundsException("Index: "+index+
                                                ", Size: "+size);
        Entry<E> e = header;
        if (index < (size >> 1)) {//这里折半            
            for (int i = 0; i <= index; i++)
                e = e.next;
        } else {
            for (int i = size; i > index; i--)
                e = e.previous;
        }
        return e;
    }


ArrayList取元素方法:
    public E get(int index) {
	RangeCheck(index);

	return (E) elementData[index];
    }


LinkedList查询位置方法:
    public int indexOf(Object o) {
        int index = 0;
        if (o==null) {
            for (Entry e = header.next; e != header; e = e.next) {
                if (e.element==null)
                    return index;
                index++;
            }
        } else {
            for (Entry e = header.next; e != header; e = e.next) {
                if (o.equals(e.element))
                    return index;
                index++;
            }
        }
        return -1;
    }

ArrayList查询位置方法:
    
public int indexOf(Object o) {
	if (o == null) {
	    for (int i = 0; i < size; i++)
		if (elementData[i]==null)
		    return i;
	} else {
	    for (int i = 0; i < size; i++)
		if (o.equals(elementData[i]))
		    return i;
	}
	return -1;
    }
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics