黑马程序员:Java基础总结----子接口 List<E>及其实现类
来源:互联网 发布:淘宝"钓鱼 编辑:程序博客网 时间:2024/05/21 05:07
黑马程序员:Java基础总结
子接口 List<E>及其实现类
ASP.Net+Android+IO开发、.Net培训、期待与您交流!
java.util
子接口 List<E>
子接口 List<E>
- 所有已知实现类:
- AbstractList, AbstractSequentialList, ArrayList, AttributeList, CopyOnWriteArrayList, LinkedList, RoleList, RoleUnresolvedList, Stack, Vector
特点:
有序的;元素可重复,有索引
Collection
|--List:元素是有序的,元素可以重复。因为该集合体系有索引。
|--ArrayList:底层的数据结构使用的是数组结构。特点:查询速度很快。但是增删稍慢。线程不同步。
|--LinkedList:底层使用的链表数据结构。特点:增删速度很快,查询稍慢。线程不同步。
|--Vector:底层是数组数据结构。线程同步。被ArrayList替代了。因为效率低。
|--List:元素是有序的,元素可以重复。因为该集合体系有索引。
|--ArrayList:底层的数据结构使用的是数组结构。特点:查询速度很快。但是增删稍慢。线程不同步。
|--LinkedList:底层使用的链表数据结构。特点:增删速度很快,查询稍慢。线程不同步。
|--Vector:底层是数组数据结构。线程同步。被ArrayList替代了。因为效率低。
List:
特有方法。凡是可以操作角标的方法都是该体系特有的方法。
增
add(index,element);
addAll(index,Collection);
特有方法。凡是可以操作角标的方法都是该体系特有的方法。
增
add(index,element);
addAll(index,Collection);
void
add(int index, E element)
在列表的指定位置插入指定元素(可选操作)。
删
remove(index);
boolean
remove(Object o)
从此列表中移除第一次出现的指定元素(如果存在)(可选操作)。
改
set(index,element);
E
set(int index, E element)
用指定元素替换列表中指定位置的元素(可选操作)。
查
get(index):
subList(from,to);
listIterator();
ListIterator<E>
listIterator(int index)
返回列表中元素的列表迭代器(按适当顺序),从列表的指定位置开始。 int indexOf(obj):获取指定元素的位置。
int
lastIndexOf(Object o)
返回此列表中最后出现的指定元素的索引;如果列表不包含此元素,则返回 -1。
List集合特有的迭代器。
ListIterator是Iterator的子接口。
在迭代时,不可以通过集合对象的方法操作集合中的元素。
因为会发生ConcurrentModificationException异常。
所以,在迭代器时,只能用迭代器的放过操作元素,可是Iterator方法是有限的,
只能对元素进行判断,取出,删除的操作,
如果想要其他的操作如添加,修改等,就需要使用其子接口,ListIterator。
该接口只能通过List集合的listIterator方法获取。
在迭代时,不可以通过集合对象的方法操作集合中的元素。
因为会发生ConcurrentModificationException异常。
所以,在迭代器时,只能用迭代器的放过操作元素,可是Iterator方法是有限的,
只能对元素进行判断,取出,删除的操作,
如果想要其他的操作如添加,修改等,就需要使用其子接口,ListIterator。
该接口只能通过List集合的listIterator方法获取。
void
add(E e)
将指定的元素插入列表(可选操作)。
int
nextIndex()
返回对 next 的后续调用所返回元素的索引。
void
set(E e)
用指定元素替换 next 或 previous 返回的最后一个元素(可选操作)。
LIST的实现类
ArrayList:
底层是数组结构,查询快,增删慢,不同步。
注:对于判断是否存在,以及删除等操作,依赖的方法是元素的hashCode和equals方法
ArrayList判断是否存在和删除操作依赖的是equals方法
LinkedList:
底层是链表结构,增删快,查询慢,不同步
特有方法:
addFirst(); addLast();
getFirst(); getLast();
获取元素,但不删除元素。如果集合中没有元素,会出现NoSuchElementException
removeFirst(); removeLast();
获取元素,但是元素被删除。如果集合中没有元素,会出现NoSuchElementException
在JDK1.6出现了替代方法。
offerFirst(); offerLast();
peekFirst(); peekLast();
获取元素,但不删除元素。如果集合中没有元素,会返回null。
pollFirst(); pollLast();
获取元素,但是元素被删除。如果集合中没有元素,会返回null
boolean
offer(E e)
将指定元素添加到此列表的末尾(最后一个元素)。
E
peek()
获取但不移除此列表的头(第一个元素)。
E
poll()
获取并移除此列表的头(第一个元素)
E
pop()
从此列表所表示的堆栈处弹出一个元素。
void
push(E e)
将元素推入此列表所表示的堆栈。
Vector:
底层是数组结构,线程同步,被ArrayList取代了
枚举就是Vector特有的取出方式。
发现枚举和迭代器很像。
其实枚举和迭代是一样的
发现枚举和迭代器很像。
其实枚举和迭代是一样的
Enumeration en = v.elements();
while(en.hasMoreElements())
{
System.out.println(en.nextElement());
}
while(en.hasMoreElements())
{
System.out.println(en.nextElement());
}
ASP.Net+Android+IO开发、.Net培训、期待与您交流!
- 黑马程序员:Java基础总结----子接口 List<E>及其实现类
- 黑马程序员:Java基础总结----子接口 set<E>及其实现类
- 黑马程序员:Java基础总结----接口 Collection<E>&iterator
- java--19--List及其实现类与子接口
- 黑马程序员 Java基础——Map接口及其实现类
- 黑马程序员--Java基础加强--13.利用反射操作泛型II【TypeVariable】【GenericArrayType】【WildcardType】【Type及其子接口的来历】【个人总结】
- 黑马程序员:Java基础总结----接口
- 黑马程序员--java基础--接口
- 黑马程序员:Java基础总结----继承&抽象&接口
- 黑马程序员《java基础总结(八)》(集合--Collection接口)
- 黑马程序员 java基础 实现runnable接口问题 学习日志
- 黑马程序员:Java基础总结----抽象类
- 黑马程序员:Java基础总结----类 Math
- 黑马程序员:Java基础总结----类 File
- 黑马程序员-Java基础-集合类总结
- java 单列集合list及其子实现类
- Collection<E>子接口之List<E>
- 黑马程序员-java基础总结
- 黑马程序员:Java基础总结----接口 Collection<E>&iterator
- Libcurl与MASM32汇编
- 尝鲜Jekyll
- UUID与GUID
- js 动态行(增/删)示例
- 黑马程序员:Java基础总结----子接口 List<E>及其实现类
- Codeforces Round 190 div.2 322C 321A Ciel and Robot
- 【rmzt推荐:精美桌面主题 】
- 黑马程序员:Java基础总结----子接口 set<E>及其实现类
- 何时会发生db file sequential read等待事件?
- org.apache.ibatis.reflection.ReflectionException: There is no getter for property named 'xxx' in
- window.opener无效与《java web 开发实战经典》
- Python strip lstrip rstrip使用方
- 深入学习才有进步