Java集合框架--List接口 & List接口的使用 & 列表迭代器ListIterator
Posted Z && Y
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java集合框架--List接口 & List接口的使用 & 列表迭代器ListIterator相关的知识,希望对你有一定的参考价值。
1. List接口
1.1 Collection体系:
1.2 什么叫做有序?
- 有序指的是添加的顺序与遍历的顺序应该保持一致,比如添加的顺序为a,b,c那么遍历的时候应该是a,b,c
1.3 接口常用方法(包含Collection接口的所有方法):
-
LIst接口常用方法
-
Collection接口常用方法:
2. List接口的使用
2.1 创建集合:
// 创建集合
List list = new ArrayList<>();
2.2 添加元素
注意默认是添加到末尾:
list.add("zhou");
list.add("tian");
插入操作 在下标为0的元素前面插入 “jiao”:
list.add(0, "jiao");
2.3 删除元素
删除元素 这里删除的下标为0的元素:
list.remove(0);
删除元素内容为0的元素:
list.remove(new Integer(0));
删除元素内容为"tian"的元素:
list.remove("tian");
2.4 遍历集合
2.4.1 使用for遍历
System.out.println("---------------使用普通for循环遍历---------------");
for (int i = 0; i < list.size(); ++i) {
/*
这里 get(index); 是根据元素的下标获取元素
*/
System.out.print(list.get(i) + "\\t");
}
2.4.2 使用增强for
for (Object object : list) {
System.out.print(object + "\\t");
}
2.4.3 使用Iterator迭代器遍历
Iterator iterator = list.iterator();
while (iterator.hasNext()) {
System.out.print(iterator.next() + "\\t");
}
2.4.4 使用列表迭代器,listIterator可以双向遍历,添加、删除及修改元素。
从前往后:
System.out.println("从前往后遍历元素:");
while (listIterator.hasNext()) {
System.out.print(listIterator.next() + "\\t");
}
从后往前:
System.out.println("从后往前遍历元素:");
while (listIterator.hasPrevious()) {
System.out.print(listIterator.previous() + "\\t");
}
2.5 判断
System.out.println("列表是否为空: " + list.isEmpty());
System.out.println("列表是否包含'jiao': " + list.contains("jiao"));
2.6 获取位置
System.out.println("第一个元素内容为jiao的下标为: (如果没有则返回-1)" + list.indexOf("jiao"));
System.out.println("最后一个元素内容为jiao的下标为: (如果没有则返回-1)" + list.lastIndexOf("jiao"));
2.7 截取集合
截取集合 截取下标为[0,1)的元素:
List myList = list.subList(0, 1);
3. 完整的测试代码:
package list;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import java.util.ListIterator;
/**
* List子接口的使用(一)
* 特点:1.有序有下标 2.可以重复
* 1.添加元素
* 2.删除元素
* 3.遍历元素
* 4.判断
* 5.获取位置
*/
public class Demo3 {
public static void main(String[] args) {
// 创建集合
List list = new ArrayList<>();
//1.添加元素 注意默认是添加到末尾
list.add("zhou");
list.add("tian");
list.add(0, "jiao");//插入操作 在下标为0的元素前面插入 "jiao"
System.out.println("元素个数:" + list.size());
System.out.println("集合内容: " + list.toString());
System.out.println();
/*
2.删除元素 这里删除的下标为0的元素
如果要删除元素内容为0的元素 => list.remove(new Integer(0));
*/
list.remove(0);
//list.remove("tian"); 删除元素内容为"tian"的元素
System.out.println("删除下标为0的元素和元素内容为\\"tian\\"的元素之后:" + list.size());
System.out.println(list.toString());
System.out.println();
//3.遍历元素
//3.1 使用for遍历
System.out.println("---------------使用普通for循环遍历---------------");
for (int i = 0; i < list.size(); ++i) {
/*
这里 get(index); 是根据元素的下标获取元素
*/
System.out.print(list.get(i) + "\\t");
}
System.out.println();
System.out.println("---------------使用增强for循环遍历---------------");
//3.2 使用增强for
for (Object object : list) {
System.out.print(object + "\\t");
}
System.out.println();
//3.3 使用迭代器
System.out.println("---------------使用Iterator迭代器遍历---------------");
Iterator iterator = list.iterator();
while (iterator.hasNext()) {
System.out.print(iterator.next() + "\\t");
}
System.out.println();
//3.4使用列表迭代器,listIterator可以双向遍历,添加、删除及修改元素。
System.out.println("---------------使用listIterator列表迭代器遍历---------------");
ListIterator listIterator = list.listIterator();
//从前往后
System.out.println("\\n从前往后遍历元素:");
while (listIterator.hasNext()) {
System.out.print(listIterator.next() + "\\t");
}
//从后往前(此时“遍历指针”已经指向末尾)
System.out.println("从后往前遍历元素:");
while (listIterator.hasPrevious()) {
System.out.print(listIterator.previous() + "\\t");
}
//4.判断
System.out.println();
System.out.println("列表是否为空: " + list.isEmpty());
System.out.println("列表是否包含'jiao': " + list.contains("jiao"));
//5.获取位置
System.out.println();
System.out.println("第一个元素内容为jiao的下标为: (如果没有则返回-1)" + list.indexOf("jiao"));
System.out.println("最后一个元素内容为jiao的下标为: (如果没有则返回-1)" + list.lastIndexOf("jiao"));
//截取集合 截取下标为[0,1)的元素
List myList = list.subList(0, 1);
System.out.println("\\n截取下标为[0,1)的元素" + myList);
}
}
运行结果:
4. 列表迭代器ListIterator
api文档:
方法:
ListIterator与Iterator的区别:
- ListIterator可以任意方向遍历集合,ListIterator可以在遍历集合的时候可以增删改集合元素。
- Iterator只可以从前往后遍历集合,并且在遍历的时候只可以删除集合元素。
以上是关于Java集合框架--List接口 & List接口的使用 & 列表迭代器ListIterator的主要内容,如果未能解决你的问题,请参考以下文章
Java集合框架 List接口实现类--LinkedList类的使用 & 源码分析 & LinkedList与ArrayList类的区别