您现在的位置是:首页 > 编程 > 

Java中List集合

2025-07-28 08:00:20
Java中List集合 一、概述1、三大特点:有序的(存取的顺序是一致的);有索引;允许存储重复的元素;二、使用初始代码:代码语言:javascript代码运行次数:0运行复制 //初始代码 List<String> list = new ArrayList<>(); list.add("大哥");

Java中List集合

一、概述

1、三大特点:

有序的(存取的顺序是一致的);有索引;允许存储重复的元素;

二、使用

初始代码:

代码语言:javascript代码运行次数:0运行复制
        //初始代码
        List<String> list = new ArrayList<>();
        list.add("大哥");
        list.add("二哥");
        list.add("三哥");
        println(list);//[大哥, 二哥, 三哥]
        println("=====================");

1、为指定位置添加一个元素

代码语言:javascript代码运行次数:0运行复制
        //下面演示list特有的带索引的方法
        //1、为指定位置添加一个元素
        list.add(1,"我插个队");
        println(list);//[大哥, 我插个队, 二哥, 三哥]
        println("=====================");

2、删除指定位置的元素

代码语言:javascript代码运行次数:0运行复制
        //2、删除指定位置的元素
        String string = list.remove(1);
        println(list);//[大哥, 二哥, 三哥]
        println("被移除的元素是"+string);//我插个队
        println("=====================");

、替换指定位置的元素

代码语言:javascript代码运行次数:0运行复制
         //、替换指定位置的元素
        String string1 = list.set(2,"小弟");
        println(list);//[大哥, 二哥, 小弟]
        println("被替换的元素"+string1);
        println("=====================");

4、获取指定位置的元素

代码语言:javascript代码运行次数:0运行复制
        //4、获取指定位置的元素
        String string2 = list.get(1);
        println(string2);//二哥

5、使用迭代器遍历(为了增强对迭代器的熟悉度)

代码语言:javascript代码运行次数:0运行复制
        //5、使用迭代器遍历,以及多个循环遍历的方法
        Iterator<String> iterator = list.iterator();
        while (iterator.hat()){
            println(());
        }
        for(Iterator<String> iterator1 = list.iterator();iterator1.hat();){
            println(());
        }
        //增强for循环-底层是迭代器
        for(String s : list){
            println(s);
        }
        //for循环遍历,使用get方法
        for (int i = 0; i < list.size(); i++) {
            println(list.get(i));
        }
三、ArrayList集合

1、简介

List接口的大小可变的数组的实例(底层是数组);

此实现不是同步的(意思是多线程,效率高);

里面包含了很多通过索引操作元素的方法;

简化:基于数组实现,增删快,查询慢,线程不安全;

2、特点

增删慢,查询快;

、注意

很多程序员非常随意的使用ArrayList完成任何需求,并不严谨,不提倡!

4、为什么增删快,查询慢

ArrayList底层是基于数组实现的,数组是一串连续的存储空间,所以ArrayList集合内部的元素必须是连续存储的,当要在中间删除或者插入一个元素,其后面的元素都需要进行一移动,因此ArrayList集合不适合删除和插入,而适合查和遍历操作;

5、ArrayList集合长度自动增长原理

ArrayList集合不需要在定义时指定数组的长度,当所要存储的元素超过ArrayList长度的时候,系统会自动创建一个更大长度的数组,将之前的元素复制进去,然后继续进行添加操作;

四、LinkedList

1、简介

List 接口的链接列表实现(底层是链表结构);

此实现不是同步的(意思是多线程,效率高);

里面包含了多个操作首尾元素的方法;

简化:基于双向链表实现,增删快,查询慢,线程不安全!

2、特点

查询慢,增删快;

、注意

使用LinkedList集合特有的方法时不能使用多态;

.5、补充说明

LinkedList采用双向链表结构存储元素,对LinkedList元素进行插入和删除时,只需要在对应节点上进行,对其他元素没有影响,因此插入和删除操作很快,但是在随机访问时需要对内部元素进行从头直到遍历到该元素为止,速度较慢;

4、使用

初始代码:
代码语言:javascript代码运行次数:0运行复制
         //创建LinkedList,添加默认数据
        LinkedList<String> linkedList = new LinkedList<>();
        linkedList.add("大哥");
        linkedList.add("二哥");
        linkedList.add("三哥");
        println(linkedList);//[大哥, 二哥, 三哥]
        println("=====================");
1、将指定的元素插入到集合的开头:
代码语言:javascript代码运行次数:0运行复制
        //1、将指定的元素插入到集合的开头
        linkedList.addFirst("大");//[大, 大哥, 二哥, 三哥]
        println(linkedList);
        println("=====================");
2、将指定的元素插入到集合的末尾:
代码语言:javascript代码运行次数:0运行复制
        //2、将指定的元素插入到集合的末尾
        linkedList.addLast("小");
        println(linkedList);//[大, 大哥, 二哥, 三哥, 小]
        println("=====================");
、将一个元素推入此列表所表示的堆栈,此方法等效于addFirst:
代码语言:javascript代码运行次数:0运行复制
        //、将一个元素推入此列表所表示的堆栈,此方法等效于addFirst
        linkedList.push("大之前");
        println(linkedList);//[大之前, 大, 大哥, 二哥, 三哥, 小]
        println("=====================");
4、获取集合的第一个元素:
代码语言:javascript代码运行次数:0运行复制
        //4、获取集合的第一个元素
        println("获取集合的第一个元素为"+linkedList.getFirst());
        println("=====================");
5、获取集合的最后一个元素:
代码语言:javascript代码运行次数:0运行复制
        //5、获取集合的最后一个元素
        println("获取集合的最后一个元素为"+linkedList.getLast());
        println("=====================");
6、移除并返回集合的第一个元素:
代码语言:javascript代码运行次数:0运行复制
        //6、移除并返回集合的第一个元素
        println("所移除的集合的第一个元素为"+linkedList.removeFirst());
        println(linkedList);//[大, 大哥, 二哥, 三哥, 小]
        println("=====================");
7、移除并返回集合的最后一个元素:
代码语言:javascript代码运行次数:0运行复制
        //7、移除并返回集合的最后一个元素
        println("所移除的集合的最后一个元素为"+linkedList.removeLast());
        println(linkedList);//[大,大哥, 二哥, 三哥]
        println("=====================");
8、从列表所表示的堆栈出弹出一个元素,等效于removeLast:
代码语言:javascript代码运行次数:0运行复制
        //8、从列表所表示的堆栈出弹出一个元素,等效于removeLast
        println(linkedList.pop());
        println(linkedList);//[大哥, 二哥, 三哥]
        println("=====================");
9、使用迭代器遍历(为了增强对迭代器的熟悉度):
代码语言:javascript代码运行次数:0运行复制
        //9、使用迭代器遍历(为了增强对迭代器的熟悉度)
        Iterator<String> iterator = linkedList.iterator();
        while (iterator.hat()){
            println(());
        }
        for(Iterator<String> iterator1 = linkedList.iterator();iterator1.hat();){
            println(());
        }
        //增强for循环-底层是迭代器
        for(String string : linkedList){
            println(string);
        }
五、Vector(了解即可)

1、简介

所有单列集合的祖宗;

Vector 类可以实现可增长的对象数组(底层是数组);

与新 collection 实现不同,Vector 是同步的(单线程,速度慢);

JDK1.0版本的,非常古老;

简化:基于数组实现,增删慢,查询快,线程安全;

2、补充

与ArrayList不同的是,Vector支持线程同步,即同一时刻只允许一个线程对Vector进行新增、删除、修改等操作,以保证多线程环境下数据的一致性,但需要对Vector进行频繁的加锁解锁操作,效率很低;

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。 原始发表:2025-01-06,如有侵权请联系 cloudcommunity@tencent 删除javalist遍历集合数组

#感谢您对电脑配置推荐网 - 最新i3 i5 i7组装电脑配置单推荐报价格的认可,转载请说明来源于"电脑配置推荐网 - 最新i3 i5 i7组装电脑配置单推荐报价格

本文地址:http://www.dnpztj.cn/biancheng/1200534.html

相关标签:无
上传时间: 2025-07-23 19:14:13
留言与评论(共有 6 条评论)
本站网友 泉州美容医院
0秒前 发表
二哥
本站网友 漳州江滨公园
2分钟前 发表
ArrayList集合长度自动增长原理ArrayList集合不需要在定义时指定数组的长度
本站网友 强迫症的治疗
14分钟前 发表
查询慢ArrayList底层是基于数组实现的
本站网友 小喇叭开始广播啦
27分钟前 发表
获取集合的最后一个元素 println("获取集合的最后一个元素为"+linkedList.getLast()); println("=====================");6
本站网友 保障机制
13分钟前 发表
三哥] println("=====================");8