集合---List
来源:互联网 发布:电力数据库 编辑:程序博客网 时间:2024/05/16 01:39
一.List接口的概述
- List接口是Collection接口的子接口
- List集合是有序的集合,可以有重复元素
有序:元素的存储和取出是一致的
二.List集合的特有功能
添加功能
void add(int index,Object element)
:在指定位置添加指定的元素
import java.util.List;import java.util.ArrayList;public class Demo1 { public static void main(String[] args) { //创建集合对象 List l = new ArrayList(); l.add("hello"); l.add("world"); l.add("java"); //在指定位置添加指定的元素 l.add(1,"javaee"); System.out.println(l); }}结果:[hello, javaee, world, java]
获取功能
Object get(int index)
:获取指定位置的元素Object set(int index,object element)
:将指定位置的元素用element该元素替代,返回的是需要被替代的元素
import java.util.List;import java.util.ArrayList;public class Demo1 { public static void main(String[] args) { //创建集合对象 List l = new ArrayList(); l.add("hello"); l.add("world"); l.add("java"); //获取指定位置的元素 System.out.println(l.get(1)); }}结果:world
删除功能
Object remove(int index)
:删除指定位置的元素,返回的就是删除的元素
import java.util.List;import java.util.ArrayList;public class Demo1 { public static void main(String[] args) { //创建集合对象 List l = new ArrayList(); l.add("hello"); l.add("world"); l.add("java"); //删除指定位置的元素 System.out.println(l.remove(1)); System.out.println(l); }}结果:world[hello, java]
list的迭代器:ListIterator(列表迭代器)
ListIterator listIterator()
:列表迭代器boolean hasNext()
:表示正向遍历:是否有下一个可以迭代的元素Object next()
:获取下一个元素boolean hasPrevious()
:表示逆向遍历:是否有上一个可以迭代的元素
要想使用逆向遍历,必须先正向遍历,如果先逆向遍历,没意义,一般不这样使用Object previous()
:返回列表中的前一个元素
import java.util.ArrayList;import java.util.List;import java.util.ListIterator;public class Demo1 { public static void main(String[] args) { //创建集合对象 List l = new ArrayList(); l.add("hello"); l.add("world"); l.add("java"); //创建列表迭代器对象 ListIterator li = l.listIterator(); //正向遍历 while(li.hasNext()){ String s = (String)li.next(); System.out.println(s); } //逆向遍历 while(li.hasPrevious()){ String s = (String)li.previous(); System.out.println(s); } }}结果:helloworldjavajavaworldhello
三.综合练习
- 需求:给List存储字符串,判断如果这个字符串是”world”,则给集合中添加一个新的字符串”javaee”
注意:
java.util.ConcurrentModificationException:并发修改异常
产生并发修改异常的原因是什么:
使用迭代器遍历时,当我们给集合中添加了新的字符串,迭代器不知道集合中是否添加了一个新的元素,所以产生这个异常
解决:通过迭代器遍历,迭代器添加/通过集合遍历,集合添加
import java.util.ArrayList;import java.util.List;import java.util.ListIterator;/*需求:给List存储字符串,判断如果这个字符串是"world" 则给集合中添加一个新的字符串"javaee"*/public class Demo2 { public static void main(String[] args) { //创建集合 List list = new ArrayList(); list.add("hello"); list.add("world"); list.add("java"); //创建迭代器对象 //迭代器遍历,迭代器添加 ListIterator li = list.listIterator(); while(li.hasNext()){ String s = (String)li.next(); if(s.equals("world")){ li.add("javaee"); break; } } System.out.println(list); //集合遍历,集合添加 for(int x = 0 ; x < list.size() ; x ++){ String s = (String)list.get(x); if(s.equals("world")){ list.add(x+1,"javaee"); break; } } System.out.println(list); }}结果:[hello, world, javaee, java][hello, world, javaee, javaee, java]
阅读全文
0 0
- list 集合
- List集合
- List集合
- List集合
- List集合
- List集合
- list 集合
- List集合
- 集合 --- List
- 集合(List)
- List集合
- 集合-List
- List集合
- list集合
- List集合
- List集合
- List集合
- List 集合
- 欢迎使用CSDN-markdown编辑器
- java排序
- spring-mvc中的将data转换为json
- #770 –LayoutTransform和RenderTransform属性的区别(Difference Between LayoutTransform and RenderTransform)
- 树-堆结构练习——合并果子之哈夫曼树
- 集合---List
- canvas画柱状图及createLinearGradient颜色渐变的效果
- MongoDB:副本集的配置
- MySQL高可用之MHA的搭建
- 机器学习算法总结--决策树
- Ionic2 bug
- HDU 1262 寻找素数对
- poj1330 Nearest Common Ancestors LCA倍增法
- 2015 ACM Amman Collegiate Programming Contest H.Bridges【边双联通+求树上最长链(树的直径)】