Java 泛型数组列表 ArrayList(学习 Java 编程语言 051)

虽然 Java 中允许在运行时确定数组的大小。
int size = ...;
String[] staff = new String[size];
但是并没有完全解决运行时动态更改数组的问题。

一旦确定了数组的大小,就不能很容易地改变它。在 Java 中,解决这个问题最简单的方法是使用 Java 中另外一个类,名为 ArrayList。ArrayList 类类似于数组,但在添加或删除元素时,它能够自动地调整数组容量,而不要为此编写任何代码。

ArrayList 是一个有类型参数(type parameter) 的泛型类(generic class)。为了指定数组列表保存的元素对象的类型,需要用一对尖括号将类名括起来追加到 ArrayList 后面,例如 ArrayList<String>

1. 声明数组列表

声明和构造一个保存 String 对象的数组列表:
ArrayList<String> list = new ArrayList<String>();
在 Java 10 中,最好使用 var 关键字以避免重复写类名:
var list = new ArrayList<String>();
如果没有使用 var 关键字,可以省略右边的类型参数:
ArrayList<String> list = new ArrayList<>();
这称为 “菱形” 语法,因为空尖括号 <> 就像是一个菱形。可以结合 new 操作符使用菱形语法。编译器会检查新值要什么。如果赋值给一个变量,或传递到某个方法,或者从某个方法返回,编译器会检査这个变量、参数或方法的泛型类型,然后将这个类型放在 <> 中。在这个例子中,new ArrayList<>() 将赋至一个类型为 ArrayList<String> 的变量,所以泛型类型为 String

警告: 如果使用 var 声明 ArrayList,就不能使用菱形语法。以下声明:
var list = new ArrayList<>();
会生成一个 ArrayList<Object>

注释: Java 5 以前的版本没有提供泛型类,而是有一个保存 Object 类型元素的 ArrayList 类,它是一个“自适应大小”(one-size-fits-all)的集合。仍然可以使用没有后缀 <...> 的 ArrayList,这将被认为是删去了类型参数的一个“原始”类型。

注释: 在 Java 的老版本中,程序员使用 Vector 类实现动态数组。不过,ArrayList 类更加高效,没有任何理由再使用 Vector 类。

使用 add 方法可以将元素添加到数组列表中。例如,下面展示了如何将 String 对象添加到一个数组列表中:

ArrayList<String> staff = new ArrayList<String>();
staff.add(new String("Harry Hacker"));
staff.add(new String("Tommy Tester"));
  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值