阜阳建网站,中小网站推广 一级域名还是二级域名,网站开发的技术简介,安徽建设厅官网List集合
List集合的概述 有序集合#xff08;也称之为序列#xff09;#xff0c;用户可以精确的控制列表中的每个元素的插入位置。用户可以通过整数索引访问元素#xff0c;并搜索列表中的元素 与 Set 集合不同#xff0c;列表通常允许重复的元素 List 集合的特点 有…List集合
List集合的概述 有序集合也称之为序列用户可以精确的控制列表中的每个元素的插入位置。用户可以通过整数索引访问元素并搜索列表中的元素 与 Set 集合不同列表通常允许重复的元素 List 集合的特点 有序存储和读取的元素顺序一致 可重复存储的元素可以重复
demo:
List集合中的常用方法
方法名说明void add(int index, E element)在集合中指定的位置插入指定的元素E remove(int index)删除指定索引出的元素返回被删除的元素E set(int index, E element)修改指定索引出的元素返回被修改的元素E get(int index)返回指定索引出的元素
add和remove方法
demo:
package demo02;import java.util.ArrayList;
import java.util.List;
/*** Classname : demo02* Description : TODO List集合中的特有方法* Author : lin_refuelqq.com*/
public class demo02 {public static void main(String[] args) {//TODO 一个list的集合list集合是带有索引的ListString list new ArrayList();// TODO 常用的几个方法,add添加元素list.add(东邪);list.add(西毒);list.add(南帝);list.add(北丐);list.add(2, 王重阳);//集合索引为2的位置添加王重阳System.out.println(list);System.out.println();//TODO remove,删除指定位置元素返回被删除元素删除索引为2的值System.out.println(list.remove(2));//返回值是王重阳System.out.println(list);}
}set 和 get 方法
package demo02;import java.util.ArrayList;
import java.util.List;
/*** Classname : demo02* Description : TODO List集合中的特有方法* Author : lin_refuelqq.com*/
public class demo02 {public static void main(String[] args) {//TODO 一个list的集合list集合是带有索引的ListString list new ArrayList();list.add(东邪);list.add(西毒);list.add(南帝);list.add(北丐);list.add(2, 王重阳);//集合索引为2的位置添加王重阳System.out.println(list);// TODO set方法修改指定索引的值list.set(2,周伯通);//王重阳被修改成为了周伯通System.out.println(list);//TODO get方法返回指定索引的值System.out.println(list.get(3));//返回”南帝“}
}运行结果
List集合的几种遍历方式
package demo02;import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;/*** Classname : demo03* Description : TODO List集合的几种遍历方式* Author : lin_refuelqq.com*/
public class demo03 {public static void main(String[] args) {//空的list集合ListString list new ArrayList();//添加几个元素list.add(雷伊);list.add(盖亚);list.add(卡修斯);list.add(布莱克);//TODO list集合遍历:方式一 for循环进行遍历for (int i 0; i list.size(); i) {System.out.print(list.get(i),);}System.out.println(\n);//TODO 方式二增强for循环for(String name : list){System.out.print(name,);}System.out.println(\n);//TODO 方式三迭代器 IteratorIteratorString it list.iterator();while (it.hasNext())System.out.print(it.next(),);}
}并发性异常的起因和处理方式 并发性异常当使用迭代器遍历集合时往集合里面添加新的元素这个会导致迭代器报出异常该异常是非检测性异常 demo: 处理上面异常的方式
package demo02;import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;/*** Classname : demo04* Description : TODO 并发性异常处理方式* Author : lin_refuelqq.com*/
public class demo04 {public static void main(String[] args) {ListString list new ArrayList();//集合里面的原始数据list.add(JavaSE);list.add(JavaScript);list.add(MySQL);list.add(JavaWeb);//建立一个for循环先进行添加for (int i 0; i list.size(); i) {if(MySQL.equals(list.get(i)))list.add(i1,JDBC);}//System.out.println(list);//再次通过迭代器进行遍历IteratorString it list.iterator();while(it.hasNext()) {System.out.print(it.next(),);}}
}ListIterator迭代器 ListIterator列表迭代器 通过 List 集合的 listIterator() 方法得到所以他是 List 集合的特有迭代器 用于允许程序员沿任何一个方向遍历列表的迭代器在迭代期间修改列表并获取列表迭代器的当前位置
方法名说明E next()返回迭代中的下一个元素boolean hasNext()如果迭代具有更多元素则返回 trueE pervious()返回列表中的上一个元素boolean hasPrevious()如果此列表迭代器在相反方向遍历列表是具有更多元素则返回 truevoid add(E e)将指定元素插入列表
package demo02;import java.util.ArrayList;import java.util.ListIterator;/*** Classname : demo05* Description : TODO List iterator* Author : lin_refuelqq.com*/
public class demo05 {public static void main(String[] args) {//一个空的集合ArrayListString list new ArrayList();//添加元素list.add(JavaSE);list.add(HTML);list.add(JavaScript);list.add(JDBC);//迭代器存储的原始的目录ListIteratorString lit list.listIterator();//循环遍历while (lit.hasNext()){System.out.print(lit.next(),);}System.out.println(\n);//TODO 集合的反向遍历是需要先进行一次正常遍历后才能反向遍历// ListIteratorString lit list.listIterator();while(lit.hasPrevious()){System.out.print(lit.previous(),);}}
}运行结果
ListIterator的并非性异常处理
package demo02;import java.util.ArrayList;
import java.util.ListIterator;/*** Classname : demo06* Description : TODO ListIterator并发性异常处理* Author : lin_refuelqq.com*/
public class demo06 {public static void main(String[] args) {ArrayListString list new ArrayList();//添加元素list.add(JavaSE);list.add(HTML);list.add(MySQL);list.add(JavaScript);//使用list集合的特有的迭代器ListIterator进行遍历ListIteratorString lit list.listIterator();//在MySQL,的后面添加JDBCwhile(lit.hasNext()){String str lit.next();if(str.equals(MySQL))// TODO list.add(JDBC); 会出现并非性异常//解决方式调用ListIterator迭代器的方法add可以避免问题lit.add(JDBC);}System.out.println(list);}
}