List继承了Collection接口,包含Collection接口的所有方法。
public interface List<AnyType> extends Collection<AnyType>{
AnyType get( int idx);
AnyType set( int idx, AnyType newVal );
void add( int idx , AnyType x );
void remove( int idx );
ListIterator<AnyType> listInterator ( int pos);
}
这是list的接口。
get表示由索引获得表上索引对应的值,set表示由索引改变表上索引对应的值。
假设表a:{4,8,10,52}
get(1) 返回 8.
set( 2 , 20 ) 则表a:{4 ,8 ,20 ,52}
add是在索引位置上新加入一个值,并把其后的项向后推移一个位置。
remove删除
假设表b:{5,3,1,10}
add( 2 , 7) 则表b:{5 ,3,7,1,10}
remove(2) 则表b:{5,3,1,10}
ArrayList与LinkedList
使用ArrayList,get和set花费常数时间(较快),新项插入和现有项删除代价昂贵。
使用LinkedList, 新项的插入和现有项的删除均开销很小。由此LinkedList提供了addFirst和removeFirst,addLast和removeLast,以及getFirst和getLast等有效地添加,删除,和访问表两端项
。