博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Java中List的集合
阅读量:5814 次
发布时间:2019-06-18

本文共 1749 字,大约阅读时间需要 5 分钟。

  hot3.png

List集合代表一个元素有序、可重复的集合,集合中的每一个元素都有其对应的顺序索引,List集合允许使用重复元素,可以通过索引来访问指定位置的集合元素。

1.List作为Collection接口的子接口,当然可以使用Collection接口里面的所有的方法。而且由于List集合有序他还有一些新方法,void add(int  index,Object element)将元素element插入到指定的位置;boolean addAll(int index,Collection c)将集合c所包含的所有元素都插入到List集合的index位置处;Object get(int index)返回集合index索引出的元素;int indexOf(Object o)返回对象o在List集合中一次出现的位置索引;int lastIndexOf(Object o)返回对象o在list集合中最后一次出现的位置索引;Object remove(int index)删除并返回index索引处的位置;Object set(int index,Object element)将index出的索引出的元素替换成element对象,返回旧元素;List subList(int formIndex,int toIndex)返回索引formIndex到索引toIndex(不包含)处所有集合元素;void replaceAll(UnaryOperator  operator):根据operator指定计算规则重新设置List集合的所有元素;void sort(Comparator c):根据Comparator参数对List集合的元素排序。与set集合只提供一个Iterator()方法不同, List还提供了一个listIterator()方法,该方法返回一个ListIterator对象,ListIterator接口继承了Iterator接口。专门操作List方法。ListIterator接口在Iterator接口基础上增加了方法,boolean hasPrevious()返回该迭代器关联的集合是否还有上一个元素。Object Previous()返回该迭代器的上一个元素;void  add(Object o)在指定位置插入一个元素。

2.ArrayList和Vector作为list类的两个典型实现,完全支持前面介绍的List接口的全部功能,即ArrayList和Vector封装了一个动态的、允许再分配的Object[] 数组ArrayList和Vector对象使用initialCapacity参数设置数组的长度,当向ArrayList或Vector中添加超过initialCapacity会自动的增长。还可以为ArrayList和Vector类提供分配Object[] 数组void ensureCapacity(int minCapacity):将ArrayList和Vector集合中的数组增加大于或等于minCapacity。void trimToSize();调整ArrayList或Vector集合的Object[]数组长度为当前集合的长度,调用该方法减少存储的空间。Vector类具有很多的缺点一般很少用,但是ArrayList是线程不安全而Vector线程安全的,还有就是Vector提供一个Stack子类,用于模拟栈这种数据结构.Stack也是一个很早的类有很多安全的、性能差,也很少使用,我们会使用ArrayDeque也是List的实现类,ArrayDeque及实现了list也实现了Deque接口,可以用来作为栈来使用。

3.我们通过Arrays该工具类里面提供的asList(Object....a)方法,该方法把数组装换一个List集合,但这个List集合既不是ArrayList的实现类,也不是Vector实现类的实例,而是Arrays的内部类ArrayList的实例。Arrays.ArrayL是一个固定长度的list集合,程序只能遍历访问里面的元素,不可增加、删除该集合的元素。

转载于:https://my.oschina.net/zkctt/blog/711681

你可能感兴趣的文章
python matplotlib 中文显示参数设置
查看>>
数据库事务隔离级别
查看>>
os模块大全详情
查看>>
【ros】Create a ROS package:package dependencies报错
查看>>
从内积的观点来看线性方程组
查看>>
kali linux 更新问题
查看>>
HDU1576 A/B【扩展欧几里得算法】
查看>>
廖雪峰javascript教程学习记录
查看>>
WebApi系列~目录
查看>>
Java访问文件夹中文件的递归遍历代码Demo
查看>>
项目笔记:测试类的编写
查看>>
通过容器编排和服务网格来改进Java微服务的可测性
查看>>
re:Invent解读:没想到你是这样的AWS
查看>>
PyTips 0x02 - Python 中的函数式编程
查看>>
阿里云安全肖力:安全基础建设是企业数字化转型的基石 ...
查看>>
使用《Deep Image Prior》来做图像复原
查看>>
如何用纯 CSS 为母亲节创作一颗像素画风格的爱心
查看>>
Linux基础命令---rmdir
查看>>
iOS sqlite3(数据库)
查看>>
粤出"飞龙",打造新制造广东样本
查看>>