数组的长度不可以发生改变。

但是ArrayList集合的长度是可以随意改变的。


对于ArrayList来说,有一个尖括号代表泛型。

泛型:也就是装在集合当中的所有元素,全都是统一的什么类型。

注意:泛型只能是引用类型,不能是基本类型。

注意事项:

对于ArrayList集合来说,直接打印得到的不是地址值,而是内容。

如果内容是空,得到的是空的括号;[]

ArrayList当中的常用方法有:

  • public boolean add(E e):向集合当中添加元素,参数的类型和泛型一致,返回值是boolean类型,代表添加是否成功

备注:对于ArrayList集合来说,add添加动作一定是成功的,所以返回值可用可不用

但是对于其他集合来说,add添加动作不一定成功

  • public E get(int index):从集合当中获取元素,参数是索引编号,返回值是对应位置的元素

  • public E remove(int index):从集合当中删除元素,参数是索引编号,返回值就是被删除的元素

DemoArrayList.java

package cn.day04;

import java.sql.SQLOutput;
import java.util.ArrayList; public int size():获取集合的尺寸长度,返回值是集合中包含的元素个数
*/
public class DemoArrayList {
public static void main(String[] args) {
//创建了一个ArrayList集合,集合名称是list,里面装的全是String字符串类型的数据
//备注:从JDK 1.7+开始,右侧的尖括号内部可以不写内容,但是<>本身还是要写的。
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); //遍历集合
System.out.println("======================");
System.out.println("遍历集合:");
for (int i = 0; i < list.size(); i++) {
System.out.println(list.get(i));
} }
}

Running result

[]
[柳岩]
添加的动作是否成功:true
[柳岩, 高圆圆, 赵又廷, 李小璐, 贾乃亮]
第2号索引位置:赵又廷
被删除的人是谁:李小璐
[柳岩, 高圆圆, 赵又廷, 贾乃亮]
集合的长度是:4
======================
遍历集合:
柳岩
高圆圆
赵又廷
贾乃亮

如果希望向集合ArrayList当中存储基本类型数据,必须使用基本类型对应的“包装类”。

基本类型 包装类(引用类型,包装类都位于java.lang包下)
byte Byte
short Short
int Integer
long Long
float Float
double Double
char Character
boolean Boolean

从JDK1.5+开始,支持自动装箱、自动拆箱

自动装箱:基本类型 --> 包装类型

自动拆箱: 包装类型 --> 基本类型

最新文章

  1. [译]Modern Core Graphics with Swift系列
  2. IO流 总结一
  3. json-c-0.9 的简单用法
  4. jQuery动态实现title的修改 失效问题
  5. Unity3d在线游戏Socket通讯
  6. B/S、C/S区别
  7. linux下实用的快速随机生成复杂密码
  8. Lansat8大气校正USGS-EROS项目espa-surface-reflectance中的LaSRC Version 1.3.0模块利用vs2010编译出windows64位版本的使用(三)
  9. K-means聚类算法原理和C++实现
  10. TICTOC: Header Only C++ Timer
  11. 前端复制粘贴clipBoard.js的使用
  12. Oracle核心技术之 SQL TRACE
  13. python程序练习题集
  14. apt-get update的hit和ign含义
  15. Java并发编程:线程封闭和ThreadLocal详解
  16. map和set的遍历
  17. css3中的nth-child和nth-of-type的区别
  18. python入门之生成器
  19. Windows下配置Redis,并修改密码
  20. 010 深入理解Python语言

热门文章

  1. HC32L110(五) Ubuntu20.04 VSCode的Debug环境配置
  2. 踩坑之旅:配置 ROS 环境
  3. linux中cd后自动 ls的设置
  4. Linux 压缩、解压缩命令
  5. idea每次换行后光标都跑到最左边问题
  6. Django 之必知必会三板斧
  7. kratos v2版本命令行工具使用
  8. Python Client API文档
  9. logstash安装插件修改使用的gem源
  10. Git Review + Gerrit 安装及使用完成 Code-Review