读书人

ArrayList,LinkedList一部分方法的比较

发布时间: 2012-12-27 10:17:10 作者: rapoo

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;    }

读书人网 >编程

热点推荐