问题描述

以往用数组,如int f[]=new int[10]时,可以直接访问对应位置数据,如int s=f[5]。今天,要使用到ArrayList时,发现构造函数中也可以设定长度

然后我就设定了长度,然后我惊呆了(我发现不能直接访问)

List<Integer> t=new ArrayList<Integer>(100);
System.out.println(t.get(5));

这里会报错,然后一脸懵逼我的觉得不科学 ,试了一下t.size()。果然,显示为0,那我一开始设置的100去哪里了?
然后我觉得我得去看看原码。
我发现构造函数中的确开辟了100的空间。

但是它没有改一个很关键的东西(size)
我们看看size方法的实现


它的默认值是0,所以之前是0,不是100可以解决了。
至于直接取数,报出异常的问题,我们去看看get方法的原码

这里有一个前置判断,我们去看看具体怎么定义的

这里又用到了我们的size,由于size是0,而不是100,所以符合判断条件,抛出了异常。。。

总结

对于ArrayList,想初始化设定长度,还是一个for循环插入吧。初始化不可靠。

ArrayList初始创建设定长度问题相关推荐

  1. ArrayList的容量与长度

    ArrayList有一个有参构造方法 public ArrayList(int initialCapacity) {if (initialCapacity > 0) {this.elementD ...

  2. 2017.4.16 ArrayList初始默认容量(长度)

    版权声明:本文原创作者:一叶飘舟 作者博客地址:http://blog.csdn.net/jdsjlzx 每个ArrayList实例都有一个容量,该容量是指用来存储列表元素的数组的大小.它总是至少等于 ...

  3. 类型初始值设定项引发异常

    -上午打开VS编译程序的时候,突然出现了这个运行时错误"类型初始值设定项引发异常".昨天还没有这个错误呢,今天就突然出现,搞得我一头雾水.上网搜了一下,发现有很多人遇到了这个问题. ...

  4. GDAL C# “OSGeo.GDAL.GdalPINVOKE”的类型初始值设定项引发异常 解决方法

    在使用C#版本的GDAL开发的时候,编译正常,启动的时候就会提示:"OSGeo.GDAL.GdalPINVOKE"的类型初始值设定项引发异常." 对于这个问题,原因主要就 ...

  5. 初始值设定项是啥c语言,无法指定数组的显式初始值设定项

    无法制止的痛(伤感语录)懂得爱就等于懂得泪这句话我深深的体会到了你是唯逐一个让我随时都可以掉下眼泪的人是不是爱一团体太深就会失掉自我在你面前我无法继续已抬不起头明知你不是故意的而我却总是感伤我怕我这样 ...

  6. Oracle.DataAccess.Client.OracleCommand”的类型初始值设定项引发异常

    Oracle.ManagedDataAccess.dll 连接Oracle数据库不需要安装客户端 最开始,连接Oracle 数据是需要安装客户端的,ado.net 后来由于微软未来不再支持 Syste ...

  7. <Module>的类型初始值设定项引发异常

    的类型初始值设定项引发异常 参考文章: (1)的类型初始值设定项引发异常 (2)https://www.cnblogs.com/RealWorld/p/7843440.html 备忘一下.

  8. “System.Transactions.Diagnostics.DiagnosticTrace”的类型初始值设定项引发异常。

    "System.Transactions.Diagnostics.DiagnosticTrace"的类型初始值设定项引发异常. 参考文章: (1)"System.Tran ...

  9. MathWorks.MATLAB.NET.Arrays.MWArray”的类型初始值设定项引发异常 解决方法

    MathWorks.MATLAB.NET.Arrays.MWArray"的类型初始值设定项引发异常 解决方法 参考文章: (1)MathWorks.MATLAB.NET.Arrays.MWA ...

最新文章

  1. android荧光进度条,CSS3 彩色荧光棒进度条
  2. matlab极大值点个数,求一组数的极大值个数
  3. Spring Cloud构建微服务架构-服务网关
  4. 转:mybatis - 分页功能
  5. android 新浪微博的点赞功能实现,Android PraiseTextView实现朋友圈点赞功能
  6. 几个以前项目中使用的函数 (转)
  7. linux 安装vbox增强工具
  8. 更新wordpress遇到prepare警告问题的解决
  9. Vue项目部署到CentOS服务器
  10. 最大子序和--动态规划
  11. mysql安装排错-解决1
  12. STM32封装库下载
  13. 尚学堂轻松愉快LINUX视频教程
  14. Speed Test隐私政策
  15. 自强不息,厚德载物——2021年年度总结
  16. fastdfs存储空间不足报错:错误码:28,错误信息:没有足够的存储空间
  17. 微信小程序-刷新当前页
  18. GPT时代,最令人担心的其实是“塔斯马尼亚效应”
  19. 地图图像迁移研究与实现
  20. Python 还原: 网红放置类游戏Cookie Clicker

热门文章

  1. bitmap实现背景透明
  2. 制作ghost的linux系统安装方法,[技术]使用Mondo Rescue进行Linux系统全备份(Ghost for Linux)...
  3. spring7大事务传播行为
  4. Unity3D教程:Unity批量处理修改烘培LightMap
  5. [4G5G专题-86]:架构 - 4G LTE 双工与多址技术
  6. 简单理解modbus功能码和分区
  7. mysql主键干嘛的_数据库表中的主键有什么作用?
  8. 使用Nginx部署PHP项目
  9. avue.js:done is not a function
  10. python 中如何将print输出中,去掉最后一个逗号