黑马程序员 知识点总结-Java集合框架(List)
2013-12-31 11:27
453 查看
[align=center]----------------------Android培训、Java培训、期待与您交流! ----------------------[/align]
【List集合中的具体常用对象】
Collection
|--List:元素是有序的,元素可以重复;因为该集合体系有索引
|--ArrayList:底层数据结构使用的是数组结构;查询速度很快,但增
加和删除稍慢;线程不同步;ArrayList初始化时,默
认长度为10,当向其中添加的元素超过10时,ArrayList
会重新创建一个对象长度增加50%,然后把原来列表
中的元素和刚添加的元素一同添加到新的ArrayList中
|--LinkedList:底层数据结构使用的是链表结构;增加和删除速度很
快,但查询速度慢
|--Vector:底层使用的是数组结构;线程同步;Vector初始化时,默
认长度为10,当向其中添加的元素超过10时,Vector
会重新创建一个对象长度增加100%,然后把原来存在
的元素和刚添加的元素一同添加到新的Vector中
+Vector中的枚举
Vector中有elements()方法,返回的是枚举Enumeration
枚举是Vector特有的取出方式,其实枚举和迭代器是一样
的,但由于枚举的名称和其中的方法名称过长,所以被迭代
器取代了。
LinkedList中的特有方法
添加:
addFirst(Ee):将指定元素插入到此列表的开头
addLast(Ee):将指定元素添加到次列表的末尾
从JDK1.6版本开始:
offerFirst(Ee):将指定元素插入到此列表的开头
offerLast(Ee):将指定元素插入到此列表的末尾
获取:
getFirst():返回此列表中第一个元素,不删除元素;若列表中没有
元素,则会抛出NoSuchElementException异常
getLast():返回此列表中最后一个元素,不删除元素;若列表
中没有元素,则会抛出NoSuchElementException异常
removeFirst():返回此列表中的一个元素,但该元素会被删除;若列
表中没有元素,则会抛出NoSuchElementException异常
removeLast():返回此列表中最后一个元素,但不删除元素;若列表
中没有元素,则会抛出NoSuchElementException异常
从JDK1.6开始
peekFirst():返回此列表中第一个元素,不删除元素;若列表中没
有元素,则返回null
peekLast():返回此列表中最后一个元素,不删除元素;若列表中没
有元素,则返回null
pollFirst():返回此列表中第一个元素,但该元素会被删除;若列
表中中没有元素,则返回null
poolLast():返回此列表中最后一个元素,不删除元素;若列表中没
有元素,则返回null
【List中的共性方法】
集合框架中所有操作角标的方法,都是该体系特有的方法
由于List继承自Collection,所以Collection中的共性方法,List中
都有,以下是List中的特有共性方法
增加:
add(int index,E element):在列表中的指定位置插入指定元素
addAll(int index,Collection<?extends E> c):在列表中的指定位置开始插入Collection中的所有元素
删除:
remove(int index):移除列表中指定位置上的元素
修改:
set(int index,Eelement):用指定元素替换列表中指定位置上的元素
查找:
get(int index):返回列表中指定位置上的元素
subList(int fromIndex,int toIndex):返回列表中从fromIndex(包含)和toIndex(不包含)之间的部分视图
listIterator():返回列表中列表迭代器
注意:List中判断元素是否相同依据的是元素中的equals()方法
Listiterator:
List中特有的迭代器是Iteraotr的子接口
由于在迭代时不可以通过集合对象的方法操作集合中的元素,否则会发生
ConcurrentModificationException异常
所以在迭代时,只能用迭代器的方法操作元素,但Iterator中的方法是有
限的,只能对元素进行判断,读取和删除。如果想要对元素进行其他操作
则需要其子接口ListIterator该接口,该接口只能通过List集合中的
listIterator()方法获取。
ListIterator中的方法:
|- add(E e):将指定元素添加到列表
|- hasPrevious():逆向遍历列表,判断前一位是否有元素
|- previous():返回前列表中一个元素
|- nextIndex():返回下一个元素的索引
|- previousIndex():返回前一个元素的索引
|- set(E e):用指定元素替换next或previous返回的最后一个元素
例:
ArrayList al = new ArrayList();
al.add("java01");
al.add("java02");
al.add("java03");
ListIterator li = al.listIterator();
while (li.hasNext()) {
if (li.next().equals("java02"))
li.add("java007");
}
System.out.println("al=" + al);
打印结果为:al=[java01,java02,java007,java03]
----------------------Android培训、Java培训、期待与您交流! ----------------------
【List集合中的具体常用对象】
Collection
|--List:元素是有序的,元素可以重复;因为该集合体系有索引
|--ArrayList:底层数据结构使用的是数组结构;查询速度很快,但增
加和删除稍慢;线程不同步;ArrayList初始化时,默
认长度为10,当向其中添加的元素超过10时,ArrayList
会重新创建一个对象长度增加50%,然后把原来列表
中的元素和刚添加的元素一同添加到新的ArrayList中
|--LinkedList:底层数据结构使用的是链表结构;增加和删除速度很
快,但查询速度慢
|--Vector:底层使用的是数组结构;线程同步;Vector初始化时,默
认长度为10,当向其中添加的元素超过10时,Vector
会重新创建一个对象长度增加100%,然后把原来存在
的元素和刚添加的元素一同添加到新的Vector中
+Vector中的枚举
Vector中有elements()方法,返回的是枚举Enumeration
枚举是Vector特有的取出方式,其实枚举和迭代器是一样
的,但由于枚举的名称和其中的方法名称过长,所以被迭代
器取代了。
LinkedList中的特有方法
添加:
addFirst(Ee):将指定元素插入到此列表的开头
addLast(Ee):将指定元素添加到次列表的末尾
从JDK1.6版本开始:
offerFirst(Ee):将指定元素插入到此列表的开头
offerLast(Ee):将指定元素插入到此列表的末尾
获取:
getFirst():返回此列表中第一个元素,不删除元素;若列表中没有
元素,则会抛出NoSuchElementException异常
getLast():返回此列表中最后一个元素,不删除元素;若列表
中没有元素,则会抛出NoSuchElementException异常
removeFirst():返回此列表中的一个元素,但该元素会被删除;若列
表中没有元素,则会抛出NoSuchElementException异常
removeLast():返回此列表中最后一个元素,但不删除元素;若列表
中没有元素,则会抛出NoSuchElementException异常
从JDK1.6开始
peekFirst():返回此列表中第一个元素,不删除元素;若列表中没
有元素,则返回null
peekLast():返回此列表中最后一个元素,不删除元素;若列表中没
有元素,则返回null
pollFirst():返回此列表中第一个元素,但该元素会被删除;若列
表中中没有元素,则返回null
poolLast():返回此列表中最后一个元素,不删除元素;若列表中没
有元素,则返回null
【List中的共性方法】
集合框架中所有操作角标的方法,都是该体系特有的方法
由于List继承自Collection,所以Collection中的共性方法,List中
都有,以下是List中的特有共性方法
增加:
add(int index,E element):在列表中的指定位置插入指定元素
addAll(int index,Collection<?extends E> c):在列表中的指定位置开始插入Collection中的所有元素
删除:
remove(int index):移除列表中指定位置上的元素
修改:
set(int index,Eelement):用指定元素替换列表中指定位置上的元素
查找:
get(int index):返回列表中指定位置上的元素
subList(int fromIndex,int toIndex):返回列表中从fromIndex(包含)和toIndex(不包含)之间的部分视图
listIterator():返回列表中列表迭代器
注意:List中判断元素是否相同依据的是元素中的equals()方法
Listiterator:
List中特有的迭代器是Iteraotr的子接口
由于在迭代时不可以通过集合对象的方法操作集合中的元素,否则会发生
ConcurrentModificationException异常
所以在迭代时,只能用迭代器的方法操作元素,但Iterator中的方法是有
限的,只能对元素进行判断,读取和删除。如果想要对元素进行其他操作
则需要其子接口ListIterator该接口,该接口只能通过List集合中的
listIterator()方法获取。
ListIterator中的方法:
|- add(E e):将指定元素添加到列表
|- hasPrevious():逆向遍历列表,判断前一位是否有元素
|- previous():返回前列表中一个元素
|- nextIndex():返回下一个元素的索引
|- previousIndex():返回前一个元素的索引
|- set(E e):用指定元素替换next或previous返回的最后一个元素
例:
ArrayList al = new ArrayList();
al.add("java01");
al.add("java02");
al.add("java03");
ListIterator li = al.listIterator();
while (li.hasNext()) {
if (li.next().equals("java02"))
li.add("java007");
}
System.out.println("al=" + al);
打印结果为:al=[java01,java02,java007,java03]
----------------------Android培训、Java培训、期待与您交流! ----------------------
相关文章推荐
- 黑马程序员 知识点总结-Java集合框架(Map)
- 黑马程序员 知识点总结-Java集合框架(一)
- 黑马程序员 知识点总结-Java集合框架工具类
- 黑马程序员 知识点总结-Java内部类
- 黑马程序员 知识点总结-Java IO(二)字符流
- 黑马程序员 泛型知识点 总结
- 黑马程序员-HTLM知识点总结
- 黑马程序员——OC知识点总结(一)
- 黑马程序员—C重点--总结一些琐碎的知识点
- 黑马程序员_Java第17天知识总结_集合框架的工具类_Collections_Arrays_将数组变成list集合_集合变数组_高级for循环_可变参数
- 黑马程序员————OC基础学习重要小知识点总结
- 黑马程序员-- 总结一些必要的理解的知识点
- 黑马程序员——运算符及语句的应用,一些小知识点总结
- 黑马程序员--正则表达式知识点总结
- 黑马程序员 知识点总结-Java异常
- 黑马程序员———Java基础------集合框架知识点总结(二)
- Java集合框架总结(4)——List接口的使用
- 黑马程序员---银行系统知识点总结
- Java集合框架总结(4)——List接口的使用
- 黑马程序员 知识点总结-Java正则表达式