【每日一篇】JAVA集合详解---List接口
2018-02-25 15:00
483 查看
垃圾idea里的文字复制过来就覆盖了我的原文,然后还删不掉诶结果自动保存了嘤嘤嘤。本来这么不爽就该收手了,但是已经说了要每天一篇的,只好重写一遍。
List是最常用的集合之一,继承了Collection接口,Collection接口又继承了Literable接口,这两个接口在前一篇了讲过了不多说。
List接口的实现颇多,JAVA开发最常用的ArrayList等带有列表特性的集合基本类都通过继承AbstractList虚基类的方式实现了List接口。
List接口声明的方法与Collection颇多重复,重复的不废话,有意思的几个方法说一声:
1.toArray()转数组方法,这个方法是安全的,就是说哪怕是数组转成的List,转回去的时候也会新建一个数组
2.jdk1.8新方法,replaceALL(),及sortAll,方法的意义顾名思义啦,这两个方法都是函数式的,将数组的元素遍历传入的函数达到效果
3.subList()方法,生成指定范围内的列表视图,注意是视图啊,修改生成的subList会影响原List,修改原List也会影响subList的
4.listLiterator()方法,会获得一个Listliterator,这个Listliterator接口继承了Literator接口,功能更强大,可以正反两方向遍历List,可以在遍历的同时修改List元素包括增删,总之就是多用用就好啦
AbstractList虚基类介绍(谷歌是真的可以为所欲为的,翻译水平比我高的多):
提供了List接口的骨架实现,以最大限度地减少实现由“随机访问”数据存储(如数组)所支持的接口所需的工作量。对于顺序访问数据(如链接列表),应该优先使用AbstractSequentialList。
为了实现一个不可修改的列表,程序员只需要扩展这个类并为get(int)和size()方法提供实现。
要实现一个可修改的列表,程序员必须另外重写set()方法(否则抛出一个UnsupportedOperationException)。如果列表是可变大小,程序员必须另外重写add()和remove()方法。
根据Collection接口规范中的建议,程序员通常应该提供一个void(无参数)和collection构造函数。
与其他抽象集合实现不同,程序员不必提供迭代器实现;迭代器和列表迭代器是由这个类在“随机访问”方法之上实现的:get(),set(),add()和remove()。
这个类中每个非抽象方法的文档都详细描述了它的实现。如果正在实施的集合允许更有效的实现,则可以重写这些方法中的每一个。
List是最常用的集合之一,继承了Collection接口,Collection接口又继承了Literable接口,这两个接口在前一篇了讲过了不多说。
List接口的实现颇多,JAVA开发最常用的ArrayList等带有列表特性的集合基本类都通过继承AbstractList虚基类的方式实现了List接口。
List接口声明的方法与Collection颇多重复,重复的不废话,有意思的几个方法说一声:
1.toArray()转数组方法,这个方法是安全的,就是说哪怕是数组转成的List,转回去的时候也会新建一个数组
2.jdk1.8新方法,replaceALL(),及sortAll,方法的意义顾名思义啦,这两个方法都是函数式的,将数组的元素遍历传入的函数达到效果
3.subList()方法,生成指定范围内的列表视图,注意是视图啊,修改生成的subList会影响原List,修改原List也会影响subList的
4.listLiterator()方法,会获得一个Listliterator,这个Listliterator接口继承了Literator接口,功能更强大,可以正反两方向遍历List,可以在遍历的同时修改List元素包括增删,总之就是多用用就好啦
AbstractList虚基类介绍(谷歌是真的可以为所欲为的,翻译水平比我高的多):
提供了List接口的骨架实现,以最大限度地减少实现由“随机访问”数据存储(如数组)所支持的接口所需的工作量。对于顺序访问数据(如链接列表),应该优先使用AbstractSequentialList。
为了实现一个不可修改的列表,程序员只需要扩展这个类并为get(int)和size()方法提供实现。
要实现一个可修改的列表,程序员必须另外重写set()方法(否则抛出一个UnsupportedOperationException)。如果列表是可变大小,程序员必须另外重写add()和remove()方法。
根据Collection接口规范中的建议,程序员通常应该提供一个void(无参数)和collection构造函数。
与其他抽象集合实现不同,程序员不必提供迭代器实现;迭代器和列表迭代器是由这个类在“随机访问”方法之上实现的:get(),set(),add()和remove()。
这个类中每个非抽象方法的文档都详细描述了它的实现。如果正在实施的集合允许更有效的实现,则可以重写这些方法中的每一个。
相关文章推荐
- 【每日一篇】JAVA集合详解----ArrayList(下)
- 【每日一篇】JAVA集合详解----ArrayList(中)
- 【每日一篇】JAVA集合详解----ArrayList(上)
- Java集合 List接口详解
- Java集合源码学习(7)_List接口的实现_LinkedList
- Java集合源码学习(5)_List接口的基础实现AbstractList
- 【java读书笔记】——Collection集合之六大接口(Collection、Set、List、Map、Iterator和Comparable)
- JAVA三种集合LIST、SET、MAP ——详解
- java_集合体系之Collection框架相关抽象类接口详解、源码——02
- Java集合Collection、List、Set、Map使用详解
- 黑马程序员——Java基础---集合(Collection接口、List接口及其子类、增强for)
- JAVA中的数据结构——集合类(线性表:Vector、Stack、LinkedList、set接口;键值对:Hashtable、Map接口<HashMap类、TreeMap类>)
- 黑马程序员--Java学习日记之集合(collection类与list接口)及泛型概述
- Java从零开始学二十一(集合List接口)
- JAVA 常用集合接口List、Set、Map总结
- Java集合List接口
- 【java读书笔记】——Collection集合之六大接口(Collection、Set、List、Map、Iterator和Comparable)
- Java集合接口详解
- java_集合体系之Map框架相关抽象类接口详解、源码——08
- 转 一篇关于java中简单集合类的详解