java List集合接口的介绍和使用全面教程
一.关于List集合类的继承关系图
List接口继承了Collection接口,而List接口下有三个重要的实现类:ArrayList,LinkedList,Vector
二.List接口的基本介绍
1.List接口是Collection接口的子接口
2.存入List集合中的元素是有序的(即添加顺序和取出顺序是一样的)
public static void main(String[] args) { List list = new ArrayList<>(); list.add("jack"); list.add(10); list.add(true); list.add("mary"); System.out.println("list="+list);//输出结果为:list=[jack, 10, true, mary] 添加顺序和取出顺序是一样的 }
3.List集合里的元素是可以重复存入的
public static void main(String[] args) { List list = new ArrayList<>(); list.add("jack"); list.add(10); list.add(true); list.add("mary"); //可以放入重复的数据jack boolean b = list.add("jack"); System.out.println(b);//输出结果为:true System.out.println("list="+list);//输出结果为:list=[jack, 10, true, mary, jack] }
4.List集合中的每一个元素都有自己对应的顺序索引,即支持索引(索引是从0开始)
public static void main(String[] args) { List list = new ArrayList<>(); list.add("jack"); list.add(10); list.add(true); list.add("mary"); list.add("jack"); //获取索引为2的元素,即第三个元素 Object o = list.get(3); System.out.println(o);//输出结果为:mary }
5.List容器中的元素都对应一个整数型的序号记载其在容器中的位置,可以根据序号取容器中的元素
6.JDK API中LIst接口的常用的实现类有:ArrayList,LinkedList,Vector
三.List接口的常用方法
由于List接口无法实例化,要想使用List接口的方法我们就用List的实现类ArrayList来演示它的常用方法
1.add(int index,Object o)方法:
在index位置插入o元素。(index表示下标,从0开始。o表示要插入的元素)
public static void main(String[] args) { List list = new ArrayList<>(); list.add("张三"); list.add("李四"); list.add("王五"); //add(int index,Object o)方法的使用 list.add(1,"小明"); System.out.println("list="+list);//输出结果为:list=[张三, 小明, 李四, 王五] }
2.addAll(int index,Collection c)方法:
在index位置插入多个元素。(index表示下标,从0开始。c表示实现了Collection接口的子类多可以放入。如果元素插入成功返回true,否则返回false)
public static void main(String[] args) { List list = new ArrayList<>(); list.add("张三"); list.add("李四"); list.add("王五"); //addAll(int index,Collection c)方法的使用 List newList = new ArrayList<>(); newList.add("小明"); newList.add("小红"); boolean b = list.addAll(1, newList); System.out.println(b);//输出结果:true System.out.println("list="+list);//输出结果:list=[张三, 小明, 小红, 李四, 王五] }
3.get(int index)方法:
获取下标为index位置上的元素(index表示下标,从0开始。)
public static void main(String[] args) { List list = new ArrayList<>(); list.add("jack"); list.add(10); list.add(true); list.add("mary"); list.add("jack"); //获取索引为2的元素,即第三个元素 Object o = list.get(1); System.out.println(o);//输出结果为:10 }
4.indexOf(Object o)方法:
查找o对象在集合中首次出现的位置,即下标(如果没有就返回-1)
public static void main(String[] args) { List list = new ArrayList<>(); list.add("张三"); list.add("李四"); list.add("王五"); list.add("李四"); //indexOf(Object o)方法的使用 int index = list.indexOf("李四"); System.out.println(index);//输出结果为:1 }
5.lastIndexOf(Object o)方法:
查找o对象在集合中末次出现的位置,即下标(如果没有就返回-1)
public static void main(String[] args) { List list = new ArrayList<>(); list.add("张三"); list.add("李四"); list.add("王五"); list.add("李四"); //lastIndexOf(Object o)方法的使用 int index = list.lastIndexOf("李四"); System.out.println(index);//输出结果为:3 }
6.remove(int index)方法:
移除index位置上的元素,并且返回此元素
public static void main(String[] args) { List list = new ArrayList<>(); list.add("张三"); list.add("李四"); list.add("王五"); list.add("李四"); //remove(int index)方法的使用 Object o = list.remove(1); System.out.println(o);//输出结果为:李四 System.out.println("list="+list);//输出结果为:list=[张三, 王五, 李四] }
7.set(int index,Object o)方法:
修改index位置上的元素为o,即为替换,并返回被修改的元素
public static void main(String[] args) { List list = new ArrayList<>(); list.add("张三"); list.add("李四"); list.add("王五"); list.add("李四"); //set(int index,Object o)方法的使用 Object o = list.set(1, "小明"); System.out.println(o);//输出结果为:李四 System.out.println("list="+list);//输出结果为:list=[张三, 小明, 王五, 李四] }
8.subList(int fromIndex,int toIndex)方法:
返回从fromindex到toIndex位置上的集合(包括fromIndex位置但是不包括toIndex位置,即[formIndex,toIndex)。)
public static void main(String[] args) { List list = new ArrayList<>(); list.add("张三"); list.add("李四"); list.add("王五"); list.add("李四"); //subList(int fromIndex,int toIndex)方法的使用 List newList = list.subList(1, 3); System.out.println("newList="+newList);//输出结果为:newList=[李四, 王五] }
四.List的三种遍历方式
1.使用Iterator(迭代器)
public static void main(String[] args) { List list = new ArrayList<>(); list.add("张三"); list.add("李四"); list.add("王五"); list.add("李四"); //使用Iterator(迭代器)遍历 Iterator iterator = list.iterator(); while (iterator.hasNext()) { Object o = iterator.next(); System.out.println(o);//遍历完最终输出结果为:张三 李四 王五 李四 } }
2.使用曾强for循环
List list = new ArrayList<>(); list.add("张三"); list.add("李四"); list.add("王五"); list.add("李四"); //使用曾强for循环遍历 for (Object o : list) { System.out.println(o);//遍历完最终输出结果为:张三 李四 王五 李四 } }
3.使用普通for循环,即利用下标遍历(下标从0开始)
public static void main(String[] args) { List list = new ArrayList<>(); list.add("张三"); list.add("李四"); list.add("王五"); list.add("李四"); //使用普通for循环遍历 for (int i=0;i<list.size();i++){ System.out.println(list.get(i));//遍历完最终输出结果为:张三 李四 王五 李四 } }
以上就是java List集合接口的介绍和使用全面教程的详细内容,更多关于java List集合接口的资料请关注脚本之家其它相关文章!
相关文章
springboot+mybatis-plus 两种方式打印sql语句的方法
这篇文章主要介绍了springboot+mybatis-plus 两种方式打印sql语句的方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧2020-10-10java中用ObjectMapper类实现Json与bean的转换示例
这篇文章主要给大家介绍了关于在java中用ObjectMapper类实现Json与bean转换的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面跟着小编来一起学习学习吧。2017-08-08火遍全网的Hutool使用Builder模式创建线程池的方法
这篇文章主要介绍了火遍全网的Hutool使用Builder模式创建线程池的方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下2021-03-03spring boot 项目中使用thymeleaf模板的案例分析
这篇文章主要介绍了spring boot 项目中使用thymeleaf模板的案例分析,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下2020-09-09
最新评论