数组的长度是固定的,无法适应数据变化的需求。为了解决这个问题,Java 提供了另一个容器 **java.util.ArrayList **集合类,让我们可以更便捷的存储和操作对象数据。

什么是 ArrayList 类

java.util.ArrayList 是大小可变的数组的实现,存储在内的数据称为元素。此类提供一些方法来操作内部存储的元素。 ArrayList 中可不断添加元素,其大小也自动增长。

ArrayList 使用步骤

  • 查看类

java.util.ArrayList <E> :该类需要 import 导入使后使用。<E> ,表示一种指定的数据类型,叫做泛型。E ,取自 Element(元素)的首字母。在出现 E 的地方,我们使用一种引用数据类型将其替换即可,表示我们将存储哪种引用类型的元素。代码如下:

ArrayList<String>,ArrayList<Student>

  • 查看构造方法

public ArrayList() :构造一个内容为空的集合。基本格式:

ArrayList<String> list = new ArrayList<String>();

在 JDK 7 后,右侧泛型的尖括号之内可以留空,但是<>仍然要写。简化格式:

ArrayList<String> list = new ArrayList<>();

  • 查看成员方法

public boolean add(E e) : 将指定的元素添加到此集合的尾部。参数 E e ,在构造 ArrayList 对象时, <E> 指定了什么数据类型,那么 add(E e) 方法中,只能添加什么数据类型的对象。使用 ArrayList 类,存储三个字符串元素,代码如下:

    public static void main(String[] args) {        // 创建了一个ArrayList集合,集合的名称是list,里面装的全都是String字符串类型的数据        // 备注:从JDK 1.7+开始,右侧的尖括号内部可以不写内容,但是<>本身还是要写的。        ArrayList<String> list = new ArrayList<>();        System.out.println(list); // []
        // 向集合当中添加一些数据,需要用到add方法。        list.add("赵丽颖");        System.out.println(list); // [赵丽颖]
        list.add("迪丽热巴");        list.add("古力娜扎");        list.add("玛尔扎哈");        System.out.println(list); // [赵丽颖, 迪丽热巴, 古力娜扎, 玛尔扎哈]
//        list.add(100); // 错误写法!因为创建的时候尖括号泛型已经说了是字符串,添加进去的元素就必须都是字符串才行    }

复制代码

常用方法和遍历

对于元素的操作,基本体现在——增、删、查。常用的方法有:public boolean add(E e) :将指定的元素添加到此集合的尾部。public E remove(int index) :移除此集合中指定位置上的元素。返回被删除的元素。public E get(int index) :返回此集合中指定位置上的元素。返回获取的元素。public int size() :返回此集合中的元素数。遍历集合时,可以控制索引范围,防止越界。这些都是最基本的方法,操作非常简单,代码如下:

public static void main(String[] args) {        ArrayList<String> list = new ArrayList<>();        System.out.println(list); // []
        // 向集合中添加元素:add        boolean success = list.add("柳岩");        System.out.println(list); // [柳岩]        System.out.println("添加的动作是否成功:" + success); // true
        list.add("高圆圆");        list.add("赵又廷");        list.add("李小璐");        list.add("贾乃亮");        System.out.println(list); // [柳岩, 高圆圆, 赵又廷, 李小璐, 贾乃亮]
        // 从集合中获取元素:get。索引值从0开始        String name = list.get(2);        System.out.println("第2号索引位置:" + name); // 赵又廷
        // 从集合中删除元素:remove。索引值从0开始。        String whoRemoved = list.remove(3);        System.out.println("被删除的人是:" + whoRemoved); // 李小璐        System.out.println(list); // [柳岩, 高圆圆, 赵又廷, 贾乃亮]
        // 获取集合的长度尺寸,也就是其中元素的个数        int size = list.size();        System.out.println("集合的长度是:" + size);    }

复制代码

如何存储基本数据类型

ArrayList 对象不能存储基本类型,只能存储引用类型的数据。类似<int> 不能写,但是存储基本数据类型对应的包装类型是可以的。所以,想要存储基本类型数据, <> 中的数据类型,必须转换后才能编写,转换写法如下:

我们发现,只有 Integer 和 Character 需要特殊记忆,其他基本类型只是首字母大写即可。

Java 中的 ArrayList 类基础使用相关推荐

  1. JAVA基础(12.Java中的常用类String)

    目录 1.前言 2.日期(时间)相关类 2.1 日期类的应用场景 2.1.1Java中的日期相关的几个类 3. Java中的常用类学习方式 3.1 什么是常用类?为什么要学习? 3.2 怎么使用Jav ...

  2. Java中使用ArrayList的10个示例–教程

    Java中的ArrayList是HashMap之后最常用的集合类. Java ArrayList表示一个可自动调整大小的数组,并用于代替数组. 由于创建数组后我们无法修改数组的大小,因此我们更喜欢在J ...

  3. Java中的File类和IO流

    Java中的File类和IO流 File类 java.io.File 类是文件和目录路径名的抽象表示,主要用于文件和目录的创建.查找和删除等操作. File的分隔符 import java.io.Fi ...

  4. java 中常用的类

    java 中常用的类 Math Math 类,包含用于执行基本数学运算的方法 常用API 取整 l  static double abs(double  a) 获取double 的绝对值 l  sta ...

  5. 实现Java中的ArrayList

    最近深受轮子哥影响,觉得造一些轮子应该会对自己的技术功底有一定的帮助,就决定先从简单的容器开始实现.废话不多说,就先实现一个Java中的ArrayList. ArrayList是我们在Java中使用非 ...

  6. 后端:Java中的BigDecimal类你了解多少?

    我们都知道浮点型变量在进行计算的时候会出现丢失精度的问题.如下一段代码: System.out.println(0.05 + 0.01); System.out.println(1.0 - 0.42) ...

  7. [转载] 面试题:说说Java中接口、类、成员变量、成员方法、构造方法有哪些访问修饰符和他们的作用范围

    参考链接: Java中的访问修饰符 * 问题:说说Java中接口.类.成员变量.成员方法.构造方法有哪些访问修饰符和他们的作用范围 * 答:接口的访问修饰符只有public 1个 *    类的访问修 ...

  8. Java中的Collections类– java.util.Collections

    Collections class in java is a useful utility class to work with collections in java. The java.util. ...

  9. java arraylist 倒置_如何在Java中反转ArrayList?

    反转ArrayList 为了在Java中反转ArrayList的元素,我们使用Collections类的reverse()方法. reverse()方法reverse()方法在java.util包中可 ...

最新文章

  1. 分享一个android debug模式,出现 waiting for debugger把界面卡住,取巧的解决办法
  2. C语言数据结构学习用单元测试
  3. java匿名内部类的使用场景_java匿名内部类的使用场景
  4. SAP Spartacus 成功读取 Cart 之后,如何将 payload 插入全局 state
  5. 前端小白进阶笔记之多级菜单分享
  6. 端到端半监督目标检测框架Instant-Teaching:
  7. linux下adb连接不上解决方法
  8. NHibernate 3.x新功能实践(二) QueryOver(下)
  9. 地铁关门提示音,可使用倒计时
  10. Python 之 新手安装详解 、安装目录说明 及 修改 pip 默认包安装位置
  11. win7计算机管理快捷键,win7系统快捷键有哪些|win7常用的15个快捷键
  12. linux hack tool
  13. 编程入门书籍:大学学习计算机基础必读 5 本经典入门书籍,收藏
  14. 软件需求包括3个不同的层次――业务需求、用户需求和功能需求
  15. Excel的25个知识~边看边操作
  16. 共阴数码管显示0~9的数字
  17. SHOUG线上活动 Maclean Liu分享《学习甲骨文数据库的自由之翼-与Oracle的世界相连接》...
  18. CSS filter有哪些用途
  19. js 伪造referer_javascript操作referer详细解析
  20. HTML5网页设计样式-基本CSS选择器

热门文章

  1. mysql 查询schema_mysql数据库schema是什么
  2. 家庭资产配置:相关性原则(1)
  3. 用C++写洛谷P1425小鱼的游泳时间
  4. uniapp 常用基本样式base.css
  5. Qt编写控件属性设计器5-属性中文
  6. Java解决下载中文乱码和URL中文乱码问题
  7. Javascript js 23种设计模式
  8. dubbo服务治理中间件
  9. 仿微信朋友圈视频拍摄,裁剪及压缩实战项目
  10. 微信聊天记录删除掉怎么恢复回来