List集合

一、特点、特有方法

java 复制代码
import java.util.ArrayList;
import java.util.List;

public class ListTest1 {
    public static void main(String[] args) {
        //1.创建一个ArrayList集合对象(有序,可重复,有索引)
        List<String> list=new ArrayList<> ();
        list.add ( "蜘蛛精" );
        list.add ( "至尊宝" );
        list.add ( "至尊宝" );
        list.add ( "牛夫人" );
        System.out.println (list);
        //2.public void add(int index ,E element) :在某个索引处插入元素
        list.add ( 2,"紫霞仙子" );
        System.out.println ( list );
        //3.public E remove(int index)  根据索引删除元素  返回被删除元素
        System.out.println ( list.remove ( 2 ) );
        System.out.println ( list );
        //4.public E get(int index):返回集合中制定位置的元素
        System.out.println ( list.get ( 3 ) );
        //5.public E set(int index,E element):修改索引位置处的元素,修改成功后,会返回原来的数据
        System.out.println ( list.set ( 3, "牛魔王" ) );
        System.out.println ( list );
    }
}

二、遍历方式(List家族通用)

java 复制代码
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;

public class ListTest2 {
    public static void main(String[] args) {
        List<String> list =new ArrayList<> ();
        list.add ( "糖宝宝" );
        list.add ( "王慧饭" );
        list.add ( "大宝贝" );
        //1.for 循环
        for (int i = 0; i < list.size (); i++) {
            String s = list.get ( i );
            System.out.println ( s );
        }
        //2.迭代器
        Iterator<String> id = list.iterator ();
        while (id.hasNext ()){
            System.out.println ( id.next () );
        }
        //3.foreach
        for (String s : list) {
            System.out.println (s);
        }
        //4.lambda表达式
        list.forEach ( s -> System.out.println (s) );
    }
}

三、ArrayList集合的底层原理,适用场景

四、LinkedList集合的底层原理(双链表)

1.底层原理

2.应用场景

1.排队

2.设计栈

java 复制代码
import java.util.LinkedList;

public class ListTest3 {
    public static void main(String[] args) {
        //1.创建一个队列
        LinkedList<String> queue=new LinkedList<> ();
        queue.addLast ( "第1号人" );
        queue.addLast ( "第2号人" );
        queue.addLast ( "第3号人" );
        queue.addLast ( "第4号人" );
        System.out.println ( queue );
        //出队操作
        System.out.println ( queue.removeFirst () );
        System.out.println ( queue.removeFirst () );
        System.out.println ( queue.removeFirst () );
        System.out.println ( queue );
        System.out.println ("------------------------------");
        //2.创建一个栈对象
        LinkedList<String> stack=new LinkedList<> ();
        //压入子弹(入栈)push
        stack.addFirst ( "第1颗子弹" );
        stack.addFirst ( "第2颗子弹" );
        stack.addFirst ( "第3颗子弹" );
        stack.addFirst ( "第4颗子弹" );
        stack.push ( "第5课子弹" );//给addFirst换了个马甲
        System.out.println (stack);
        //发射子弹(出栈)pop
        System.out.println ( stack.removeFirst () );
        System.out.println ( stack.removeFirst () );
        System.out.println ( stack.removeFirst () );
        System.out.println ( stack.pop () );//给removeFirst换了个马甲
        System.out.println ( stack );


    }
}
相关推荐
cpsvps_net8 小时前
美国服务器环境下Windows容器工作负载智能弹性伸缩
windows
甄超锋9 小时前
Java ArrayList的介绍及用法
java·windows·spring boot·python·spring·spring cloud·tomcat
星星火柴9369 小时前
关于“双指针法“的总结
数据结构·c++·笔记·学习·算法
艾莉丝努力练剑10 小时前
【洛谷刷题】用C语言和C++做一些入门题,练习洛谷IDE模式:分支机构(一)
c语言·开发语言·数据结构·c++·学习·算法
cpsvps11 小时前
美国服务器环境下Windows容器工作负载基于指标的自动扩缩
windows
闪电麦坤9511 小时前
数据结构:迭代方法(Iteration)实现树的遍历
数据结构·二叉树·
Cx330❀11 小时前
【数据结构初阶】--排序(五):计数排序,排序算法复杂度对比和稳定性分析
c语言·数据结构·经验分享·笔记·算法·排序算法
散11211 小时前
01数据结构-Prim算法
数据结构·算法·图论
阿巴~阿巴~12 小时前
深入解析C++ STL链表(List)模拟实现
开发语言·c++·链表·stl·list
..过云雨12 小时前
01.【数据结构-C语言】数据结构概念&算法效率(时间复杂度和空间复杂度)
c语言·数据结构·笔记·学习