CC00047.bigdatajava——|Java&集合类库.V04|——|Java.v04|List集合.一.v01|

一、List集合(重中之重)
### --- List集合(重中之重)

——>        [List集合]——[List集合的概念和ArrayList类的源码解析]
——>        [LinkedList类的概念和源码解析]——[Stack类和Vector类的概念]
### --- 基本概念

——>        java.util.List集合是Collection集合的子集合,
——>        该集合中允许有重复的元素并且有先后放入次序。
——>        该集合的主要实现类有:ArrayList类、LinkedList类、Stack类、Vector类。
——>        其中ArrayList类的底层是采用动态数组进行数据管理的,支持下标访问,
——>        增删元素不方便。
——>        其中LinkedList类的底层是采用双向链表进行数据管理的,访问不方便,增删元素方便。
——>        可以认为ArrayList和LinkedList的方法在逻辑上完全一样,只是在性能上有一定的差别,
——>        ArrayList更适合于机访问而LinkedList更适合于插入和删除;
——>        在性能要求不是特别苛刻的情形下可以忽略这个差别。
——>        其中Stack类的底层是采用动态数组进行数据管理的,
——>        该类主要用于描述一种具有后进先出特征的数据结构,叫做栈(last in first out LIFO)。
——>        其中Vector类的底层是采用动态数组进行数据管理的,
——>        该类与ArrayList类相比属于线程安全的类,效率比较低,以后开发中基本不用。
二、常用的方法
方法声明功能介绍
void add(int index, E element)向集合中指定位置添加元素
boolean addAll(int index, Collection<? extends E> c)向集合中添加所有元素
E get(int index) 从集合中获取指定位置元素
int indexOf(Object o)查找参数指定的对象
int lastIndexOf(Object o)反向查找参数指定的对象
E set(int index, E element)修改指定位置的元素
E remove(int index)删除指定位置的元素
List subList(int fromIndex, int toIndex)用于获取子List
三、ArrayList类的底层原理
四、LinkedList类的底层原理
五、编程代码
package com.yanqi.task14;

import java.util.ArrayList;
import java.util.LinkedList;
import java.util.List;

public class ListTest {

    public static void main(String[] args) {

        // 1.声明一个List接口类型的引用指向ArrayList类型的对象,形成了多态
        // 由源码可知:当new对象时并没有申请数组的内存空间
        List lt1 = new ArrayList();
        // 2.向集合中添加元素并打印
        // 由源码可知:当调用add方法添加元素时会给数组申请长度为10的一维数组,扩容原理是:原始长度的1.5倍
        lt1.add("one");
        System.out.println("lt1 = " + lt1); // [one]

        System.out.println("----------------------------------------------------");
        // 2.声明一个List接口类型的引用指向LinkedList类型的对象,形成了多态
        List lt2 = new LinkedList();
        lt2.add("one");
        System.out.println("lt2 = " + lt2); // [one]
    }
}
六、编译打印
D:\JAVA\jdk-11.0.2\bin\java.exe "-javaagent:D:\IntelliJIDEA\IntelliJ IDEA 2019.3.3\lib\idea_rt.jar=49566:D:\IntelliJIDEA\IntelliJ IDEA 2019.3.3\bin" -Dfile.encoding=UTF-8 -classpath E:\NO.Z.10000——javaproject\NO.H.00001.javase\javase\out\production\javase com.yanqi.task14.ListTest
lt1 = [one]
----------------------------------------------------
lt2 = [one]

Process finished with exit code 0
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

yanqi_vip

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值