JAVA|JAVA list集合的特有方法和特有迭代器

List集合是Collection接口的子接口,每个元素都有索引对应相依的的元素,正是因为如此才可以存放相同的元素而且可以根据索引来辨别元素的排列顺序,一般的默认根据添加顺序类设置元素的索引,所以List集合是一个元素有序、可重复的集合。
List集合有许多方法以下是list集合的特有的方法

添加元素的方法:
add(index,element) :将指定的元素插入列表可以插入到指定位置也可以不用指定。
addAll(idext,Collection):将指定 collection 中的所有元素都插入到列表中的指定位置(可选操作)。
删除:
remove(int index)移除列表中指定位置的元素(可选操作)。
修改:
Set(int index,E element) 用指定元素替换列表中指定位置的元素(可选操作)。
查询:
get(index)获取指定位置的元素
代码:
//添加:
//创建集合容器listArray
ArrayList list=new ArrayList();
//添加元素 add
list.add(0,"Java1");
list.add(1,"java2");
list.add(2,"java3");
list.add(3,"java4");
//输出集合
System.out.println(list);
System.out.println("---指定位置添加元素--");
//add(index,element)指定位置添加元素
list.add(1, "java10");

System.out.println(list);
ArrayList la=new ArrayList();
//addAll 将list集合中的所有元素添加到la索引为0的位置中
la.addAll(0, list);
//打印
System.out.println("la的元素+list的元素:"+la);

//删除:
//remove(index) 删除索引位置1的元素
list.remove(1);
System.out.println("删除元素后的集合"+list);

//修改
//set 修改索引为1位置元素
list.set(1, "eveat");
System.out.println("修改元素后的集合:"+list);
//查询 get查询指定位置的元素
System.out.println("索引位置为1的元素是:"+list.get(1));

效果:
JAVA|JAVA list集合的特有方法和特有迭代器
文章图片



说明:ArrayList是list接口的实现类,底层数据是数组,特点是查询查询快,增删稍慢。


list集合特有的迭代器:ListIterator
程序员遍历列表、迭代期间修改列表,并获得迭代器在列表中的当前位置。ListIterator 没有当前元素。
ListIterator迭代器是Iterator子接口
注意:在迭代时是不可以通过集合的对象操作元素否则就会引发并发异常,要么就使用迭代器的方法,要么就不要在迭代时使用集合的方法

以下ListIterator是的方法:
add(E e) 将指定的元素插入列表(可选操作)。
hasNext() 以正向遍历列表时,如果列表迭代器有多个元素,则返回
hasPrevious() 如果以逆向遍历列表,列表迭代器有多个元素,则返回 true。
next 返回列表中的下一个元素。
nextindex返回对 next 的后续调用所返回元素的索引。
remove() 删除元素
set用指定元素替换 next

代码:
System.out.println("------------分割线---------");
//创建集合容器lnng
ArrayList lnng=new ArrayList();
lnng.add("java01");
lnng.add("java02");
lnng.add("java03");
lnng.add("java04");

ListIterator li=lnng.listIterator();

//hasNext() 判断是否有下一个元素
while(li.hasNext()){
【JAVA|JAVA list集合的特有方法和特有迭代器】//接受类型是object
//next 返回li迭代器的下一个元素
Object obj =li.next();

//add 插入元素lnng集合中
if(obj.equals("java01")){
li.add("java10");
System.out.println("插入java10后的的集合:"+lnng);
}

//remove删除java02元素
if(obj.equals("java02")){
//将lnng集合中java3的引用删除
li.remove();
System.out.println("删除java2后的的集合:"+lnng);
}
//set 修改元素为java03的元素
if(obj.equals("java03")){
li.set("java13");
System.out.println("删除java3后的的集合:"+lnng);
//nextIndex此次操作的索引
System.out.println("此次操作的索引:"+li.nextIndex());
}
}

效果:
JAVA|JAVA list集合的特有方法和特有迭代器
文章图片

说明:ListIterator迭代器添加删除修改操作是对集合的操作,迭代器获取元素的标准是根据第一次获取集合的数据进行操作,就是说比如在ListIterator迭代器向集合添加元素,迭代器不会重新获取该集合的元素;

    推荐阅读