当前位置: 首页 > 知识库问答 >
问题:

初始化ArrayList

杜霍英
2023-03-14

为什么我可以初始化ArrayList,如下所示:

ArrayList<Integer> x = new ArrayList<Integer>(Arrays.asList(1,2));

但在使用时出错:

ArrayList<Long> x = new ArrayList<Long>(Arrays.asList(1,2));

共有3个答案

朱兴学
2023-03-14

您必须使用literalll指定一个Long数字。

List<Long> x = new ArrayList<Long>(Arrays.asList(1L, 2L));

否则,将12理解为整数,从而生成列表

阙弘博
2023-03-14

这是因为12是int和数组。asList(1,2)创建一个列表

ArrayList的复制构造函数要求参数具有相同的泛型类型。

您有几个选项,但最简单的一个是通过添加L后缀将ints更改为longs:

List<Long> x = new ArrayList<Long>(Arrays.asList(1L, 2L));

请注意,使用Java9,您也可以写:

List<Long> x = List.of(1L, 2L);

鄢松
2023-03-14

如果需要,Java会自动将int转换为long

但是,如果需要从整数Long的转换,Java不会执行相同的操作。

函数Arrays.asList(...)返回一个List

如果现在使用构造函数new ArrayList

但是当你使用new ArrayList时

所以这一切都围绕着输入1,2,3被解释为int而不是long。您可以通过显式地告诉Java将这些数字解释为long来解决这个问题,您可以通过在数字后面追加lL来做到这一点:

new ArrayList<Long>(Arrays.asList(1L, 2L, 3L));

现在您将收到一个列表

请注意,可以使用相同的技术将十进制数显式解释为float而不是double1.5F1.5F

 类似资料:
  • Initialization 初始化 Although it doesn’t look superficially very different from initialization in C or C++, initialization in Go is more powerful. Complex structures can be built during initialization a

  • 初始化是为类、结构体或者枚举准备实例的过程。这个过需要给实例里的每一个存储属性设置一个初始值并且在新实例可以使用之前执行任何其他所必须的配置或初始化。 你通过定义初始化器来实现这个初始化过程,它更像是一个用来创建特定类型新实例的特殊的方法。不同于 Objective-C 的初始化器,Swift 初始化器不返回值。这些初始化器主要的角色就是确保在第一次使用之前某类型的新实例能够正确初始化。 类类型的

  • new iSlider(DOM, DATA, OPTIONS) Name Type Description DOM dom 容器dom节点 DATA Array 数据列表 OPTIONS Object 配置项 DOM new iSlider(DOM, DATA, OPTIONS); {HTMLElement} 容器dom节点 作为第一个参数并不是必须的,会被OPTIONS.dom覆盖,但是这十分必

  • 确认初始化操作 1)初始化操作用来清空此统计ID的统计数据 2)与启用新的统计ID不同的是,初始化操作使您不需更换网站上的统计代码就可以重新开始统计 注意:初始化操作将清除此统计ID的所有统计数据,此操作不可恢复!!!

  • 创建版本库 git 基于文件夹(工作树)进行版本控制,在一个文件夹中创建 git版本库: $ cd project/ $ git init Initialized empty Git repository in .git/ 输出信息:在当前文件夹的 .git/ 目录下创建版本库 将文件提交到 git索引: git add file1 file2 file3 …… 更方便的作法是

  • 1. 引入sdk 下载wechat-mudu.min.js到小程序项目,建议放utils目录下 const Mudu = require('./utils/wechat-mudu.min') 2. 设置小程序code获取session_key地址 本方法已废弃 sdk会在初始化的时候获取用户的微信资料并设置到目睹平台,所以需要设置该地址用户获取用户openid, 详见用户 Mudu.setOp

  • 1. 引入sdk文件 // 播放器依赖于Promise,兼容ie及其它低版本浏览器的用户需添加polyfill, 如下: <script src="//static.mudu.tv/es6-promise/es6-promise.auto.min.js"></script> // 以下为必须添加项 <script>window.FETCHER_SERVER_URL = "ws://fetcher

  • 初始化 使用 Mobile SDK 之前必须要先初始化SDK,否则无法正常使用 Mobile SDK。 注意: 在工程的Application类的onCreate()方法中初始化RokidMobileSDK。 appKey、appSecret、accessKey 请按照真实填写,否则会初始化失败。 appKey、appSecret、accessKey 请到 https://www.wenjiang