zoukankan      html  css  js  c++  java
  • ArrayList详解

    1.简介

    首先我们要知道ArrayList属于Java中的一个类,位于util包下,util包使用前需要导包

    ArrayList与C语言中的链表有异曲同工之处,他们的长度、元素都是动态的,ArratList可称为Java中的动态数组,是比Array更复杂的一种类型

    2.声明

    ArrayList<E> array=new ArrayList<>(); E表示泛型,即ArrayList中添加的所有元素都要保持同一种数据类型。

    如果需要储存基本数据类型,需要用到它们的包装类(应用类型,包装类型位于lang包下,使用时不用导包)

    包装类

    包装类可以理解为位于基本类型之上且与各基本类型一一对应的一种类型

    基本类型    包装类
    byte Byte
    short Short
    int Integer
    long Long
    float Float
    double Double
    char Character
    boolean Boolean

    其中从JDK1.7开始,在new ArrayList<>()后的<>可保持为空
    基本类型转化至包装类型称为装箱,反之称为拆箱,从JDK1.5+开始支持自动装箱、拆箱
    import Java.util.*
    //......
    ArrayList<Integer> array01=new ArrayList<>();//基本类型--包装类
    //表示创建一个ArrayList集合,集合的名称是array01,添加的所有元素都要求为Integer即int类型的 ArrayList
    <String>() array02=new ArrayList<>();//引用类型--String
    //同上

    3.方法和使用

    添加元素

    add方法

    //常用
    array01.add(character); //表示直接顺序向后添加元素 array01.add(index,character); //表示在第index-1和index个元素中间插入元素character

    添加类

    添加类与添加元素本质上差不多,可以将类打包成一个个单位然后添加进去,可以是自定义的类

    比如说要求建立一个包含多个学生名字和年龄的集合

    import java.util.ArrayList;
    
    public class ProblemOfArrayList {
        public static void main(String[] args) {
            ArrayList<Students> stu = new ArrayList<>();//E=Students, Students为自己建立的类
    //统计四个Students对象st1 st2 st3 st4的名字和年龄 Students st1 = new Students("Matthew", 20); Students st2 = new Students("Mary", 19); Students st3 = new Students("Jason", 18); Students st4 = new Students("Jake", 17); //依次添加学生对象 stu.add(st1); stu.add(st2); stu.add(st3); stu.add(st4); } //建立Students类 class Students { private String name; private int age; //Students含参构造函数,用于录入名字和年龄 public Students(String name, int age) { this.name = name; this.age = age; } }

    删除元素

    remove方法

    // 常用
    array01.remove(index);//表示移除第index个元素

    获取元素

    get方法

    //常用
    array01.get(index);//表示获取第index个元素

    获取集合长度

    size方法

    int length = array01.size();
  • 相关阅读:
    SQL Server中的Merge关键字
    详解公用表表达式(CTE)
    SQL Server优化50法
    Chrome下的脚本管理器
    初步设计了一下视频工具合集的界面
    迅雷的剪贴板冲突好强大
    在C#中用MediaInfo获取视频或音频的属性
    用Command模式简单的实现Undo&Redo功能
    用DoddleReport快速生成报表
    移动支付时代早日来临吧
  • 原文地址:https://www.cnblogs.com/YuanShiRenY/p/ArrayListLearn.html
Copyright © 2011-2022 走看看