List 集合
List 集合
ruoxijunList 集合
List 接口 (有序,带索引,元素可重复),继承了 Collection 接口继承了它的方法外,它还定义了 list 集合的特性和独有方法,它的元素是 有序带索引且可重复 的,通过索引可以精确操作集合元素。所有对索引操作的方法都存在 角标越界 的错误风险。
List 重载和特有方法一览:
方法 | 效果 | 返回值 |
---|---|---|
add(int,object) | 指定插入 | void |
set(int,object) | 修改元素 | Object(泛型对象) |
get(int) | 获取元素 | Object(泛型对象) |
indexOf(object) | 查找获取该元素位置 | int |
remove(int) | 删除元素 | 被删除元素 |
subList(int,int) | 取部分集合,取头不取尾 | List |
List 已实现类和特性:
- Vector: 是长度可变的数组结构,增删改查都慢,同步(不建议使用)
- ArrayList: 是长度可变的数组结构,查询速度快,增删较慢,且是不同步的
- LinkedList: 是链表结构(指针),增删快,查询较慢,不同步
List 的基本使用:
1 | List list=new ArrayList(); |
运行结果:
1 | obj |
在循环中修改元素:
- 在 for 循环中对 list
remove
操作时需注意元素的移动,和 size 的变化。
1 | for(int i=0;i<list.size();i++){ |
- foreach 循环中不能使用
add
和remove
方法,否则报错。原因请参考此文章: foreach 循环中不能用 list.remove() list.add()方法的原因分析
- 利用 ListIterator 动态修改元素(官方推荐):
1 | //获取到当前list的迭代器,并判断是否存在下一个元素 |
注意此 ListIterator 迭代器为为 list 独有。
LinkedList:
此类的方法是实现模拟 堆栈 或 队列 的最好选择
1 | LinkedList list=new LinkedList(); |
Comment
匿名评论隐私政策
TwikooWaline
✅ 你无需删除空行,直接评论以获取最佳展示效果