JAVA-DAY12 集合容器:ArraysList,LinkedList

目录

集合容器

数组(Array)有什么缺点?

ArraysList中的  "E"到底是什么?

双向链表封装类--LinkedList

           增

          删

          查

       数组和链表的区别

 Array和ArrayList的区别是什么?

整理ArrayList的常用方法

整理LinkedList的常用方法


集合容器

数组(Array)有什么缺点?

1.在创建数组的时候,就需要定死长度,在运行过程中,需要判断剩余长度,并动态扩容

2.在中间插入的时候,需要将后面的元素进行后移

3.在中间删除的时候,需要将后面元素进行前移

数组的封装类 - 列表(集合)(ArrayList)是一个封装类:有成员变量,构造方法,成员方法

数组特点:有序的,不唯一的

   构造方法:先研究如何构造方法

         ArrayList()

        ArrayList(int)

   成员变量:研究构造出来的对象中有什么

      elementDate---Object[]类型

      size---int类型

   成员方法:研究如何操作对象中的成员

      add(int) --在数组尾部的第一个不为空的位置添加

      add(int,E)--在数组中的指定位置插入

      set(int,E)  --修改数组指定位置

      remove(int)---根据数组索引号删除

      remove(Object)--根据指针移除,如果存在多个,只会移除第一个

      get(int)--根据指定的索引号找到某个元素并返回

ArraysList中的  "E"到底是什么?

泛型:用泛型来实现类中用到的数据类型的未知

               --作者在编写的时候用"E"来表达数据类型的未知

               --调用者在使用的时候,可以给出"E"的具体类型,也可以不给出

                           如果给出“E”的具体类型,是在构造ArrayList对象(在声明指针)的时候给出

                           例如:E=String    E=Car     E=Dog

                           不给的话"E"=Object

                           给出E的具体数据类型的语法:

                           ArrayList<String>al1=new ArrayList();

                           ArrayList<Car>al2=new ArrayList();

package Charpter12;

import Chapter04汽车租聘系统.Car;

import java.util.ArrayList;

public class Demo02 {
    public static void main(String[] args) {
        //未指定泛型“E”的具体类型,E=Object
        ArrayList al1=new ArrayList();
        Car car =new Car();
        car.setBrand("玛莎拉蒂");
        al1.add(car);//发生向上转型car添加Object类型的数组中
        //Car car2=al1.get(0);
        Object obj=al1.get(0);
        Car car3=(Car)al1.get(0);
        //指定了E为Car类型
        ArrayList<Car>al2=new ArrayList<>();
        al2.add(car);
        Car car4=al2.get(0);
    }
}

(可以是参数类型,可以是返回值类型,可以是任意变量类型,可以是向下转型的类型)

用泛型的好处是,被调用方可以帮调用方写向下转型的代码

双向链表封装类--LinkedList

底层:Node对象

构造方法

成员变量

成员方法

<
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值