java - ArrayList问题

查看:136
本文介绍了java - ArrayList问题的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

问 题

今天在看ArrayList源码,有如下困惑,希望得到大神们的解答。
在ArrayList源码中定义了两个一模一样的数据结构,如下:

private static final Object[] EMPTY_ELEMENTDATA = {};
private static final Object[] DEFAULTCAPACITY_EMPTY_ELEMENTDATA = {};

官网给出的解释是这样子的:

private static final Object[] EMPTY_ELEMENTDATA = {};
Shared empty array instance used for empty instances.

而,另外一个:

private static final Object[] DEFAULTCAPACITY_EMPTY_ELEMENTDATA = {};
Shared empty array instance used for default sized empty instances. We distinguish this from EMPTY_ELEMENTDATA to know how much to inflate when first element is added.

求解答啊,谢谢~~~
而且,本人吃惊的发现,DEFAULTCAPACITY_EMPTY_ELEMENTDATA 这个东西是JDK 1.8中才加进来的,我就更加神奇了,为什么JDK 1.8中要加入这个呢?

解决方案

We distinguish this from EMPTY_ELEMENTDATA to know how much to inflate when first element is added.
我没读过源码, 但是我看到题主的注释里面有这么一句, 我们根据第一个元素被添加时知道多少个元素去填充把它与EMPTY_ELEMENTDATA区分开来.

这篇关于java - ArrayList问题的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆