ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

List接口常用方法

2021-09-28 11:33:48  阅读:142  来源: 互联网

标签:常用 List list System 接口 XiAn add println out


List接口和常用方法

常用实现List接口的类有ArrayList、LinkedList、Vector

List集合类中元素添加顺序和取出顺序一致

        List list = new ArrayList();
        list.add("XiAn");
        list.add("BeiJing");
        list.add("ShangHai");
        list.add("XiAn");
        System.out.println("list = " + list);
//输出结果:
//list = [XiAn, BeiJing, ShangHai, XiAn]

list集合中每个元素都有对应的顺序索引,像数组下标

        System.out.println("list[3]="+list.get(3));
//输出结果:
//list[3]=XiAn

1.常用方法

1.1 void add(int index, E element) 添加元素

        list.add(1,"南京");
        System.out.println(list);
//输出结果:
//[XiAn, 南京, BeiJing, ShangHai, XiAn]

参数index可以省略,省略后默认加在最后。

1.2 boolean addAll(int index, Collection c) 添加元素集合

       //创建一个list2,并且录入数据
		List list2 = new ArrayList();
        list2.add("上海");
        list2.add("深圳");
		//将list2中所有内容插入到XiAn后面去
        list.addAll(1,list2);
        System.out.println(list);
//输出结果:
//[XiAn, 上海, 深圳, 南京, BeiJing, ShangHai, XiAn]

参数index可省略,省略后默认加在最后。

1.3 Object get(int index) 获取index位置的元素

        //list=》[XiAn, 上海, 深圳, 南京, BeiJing, ShangHai, XiAn]
		//list2=>[上海, 深圳]
		System.out.println(list.get(6));
        System.out.println(list2.get(1));
//输出结果:
//XiAn
//深圳

若超过index实际最大值,会报下标越界错误。

1.4 int indexOf(Object o) 获取元素首次出现的下标

        //list=》[XiAn, 上海, 深圳, 南京, BeiJing, ShangHai, XiAn]
		//list2=>[上海, 深圳]
		System.out.println(list.indexOf("XiAn"));
        System.out.println(list2.indexOf("XiAn"));
//输出结果:
// 0
// -1

​ 返回元素o在当前集合中首次出现的位置,没有则返回-1。

1.5 int lastIndexOf(Object o) 获取元素最后一次出现的下标

        //list=》[XiAn, 上海, 深圳, 南京, BeiJing, ShangHai, XiAn]
		//list2=>[上海, 深圳]
		System.out.println(list.lastIndexOf("XiAn"));
        System.out.println(list2.lastIndexOf("XiAn"));
//输出结果:
// 6
// -1

​ 若集合中没有该元素返回-1.

1.6 boolean remove(Object o) / E remove(int index)

删除对应元素 / 删除下标对应元素

        //list=》[XiAn, 上海, 深圳, 南京, BeiJing, ShangHai, XiAn]
		list.remove("XiAn");
        list.remove(1);
        System.out.println(list);
//输出结果:
//[上海, 南京, BeiJing, ShangHai, XiAn]

若无对应元素,则集合不做操作 / 若无对应下标,则抛出异常->下标越界

        //list=》[XiAn, 上海, 深圳, 南京, BeiJing, ShangHai, XiAn]        
		list.remove("南海");
        System.out.println(list);
//输出结果:
//[XiAn, 上海, 深圳, 南京, BeiJing, ShangHai, XiAn]

1.7 E set(int index, E element) 将index位置的元素替换为elem

		//list=》[XiAn, 上海, 深圳, 南京, BeiJing, ShangHai, XiAn]          
		list.set(1, "成都");
        System.out.println(list);
//输出结果:
//[XiAn, 成都, 深圳, 南京, BeiJing, ShangHai, XiAn]

以该集合为例,参数index必须在0~6之间,不能为7代表着不能插入在最后,否则抛出下标越界

1.8 List subList(int fromIndex, int toIndex)

获取下标范围为 [ fromIndex,toIndex ) 的元素子集

        //list=》[XiAn, 上海, 深圳, 南京, BeiJing, ShangHai, 成都]
		List list3 = list.subList(1,4);
        System.out.println(list3);
//输出结果:
//[上海, 深圳, 南京]

范围为[A,B),则说明toIndex在以该集合为例时最大可以取到7,超出则抛出异常

2. List接口的三种遍历方式

//创建
		List list = new ArrayList();

        list.add("喜羊羊");
        list.add("美羊羊");
        list.add("懒羊羊");

2.1 Interator(迭代器)

        Iterator iterator = list.iterator();
        while(iterator.hasNext()){
            Object obj = iterator.next();
            System.out.println(obj);
        }
//输出结果:
// 喜羊羊
// 美羊羊
// 懒羊羊

​ 若对正在迭代的集合进行操作(add\remove\clear),迭代器就不再合法,此时使用迭代器会抛出ConcurrentModificationException异常。

//错误使用
        List list = new ArrayList();
        Iterator iterator = list.iterator();
        list.add("喜羊羊");
        list.add("美羊羊");
        list.add("懒羊羊");
        while(iterator.hasNext()){
            Object obj = iterator.next();
            System.out.println(obj);
        }

​ 若要在迭代时对集合进行删除操作,Iterator接口有自带的remove方法,会移除正迭代的元素。

2.2 增强for

        for (Object o :list) {
            System.out.println(o);
        }

2.3 普通for

        for (int i = 0; i < list.size(); i++) {
            System.out.println(list.get(i));
        }

标签:常用,List,list,System,接口,XiAn,add,println,out
来源: https://www.cnblogs.com/wsl975/p/15347077.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有