从列表中获取(),但在Java中作为参数传递long
我试图从列表从列表中获取(),但在Java中作为参数传递long,java,Java,我试图从列表list-listofitems中获取一个元素,我有一个类型为long的globale变量position。我想执行listofitems.get(position)但它不允许我这样做,因为get将int作为参数。如果我想将位置的类型保持为长,是否有其他方法?(除了将position转换为int之外,还有其他方法吗?如果您想这样做,您必须构造一个类,该类包含一组列表来表示您的数据。您可以编写自己的访问方法,将long拆分为较小的int,以访问列表中的正确位置 请参阅此答案:这是一个必
list-listofitems
中获取一个元素,我有一个类型为long
的globale变量position
。我想执行listofitems.get(position)
但它不允许我这样做,因为get
将int
作为参数。如果我想将位置的类型保持为长
,是否有其他方法?(除了将position
转换为int
之外,还有其他方法吗?如果您想这样做,您必须构造一个类,该类包含一组列表来表示您的数据。您可以编写自己的访问方法,将long拆分为较小的int,以访问列表中的正确位置
请参阅此答案:这是一个必须通过不安全api查询内存的点。如果列表/数组大于整数,则链接为最大值。
注意:
编写自己的列表/数组实现。
不安全
实际上是不安全的。
这样的实施需要很长的索引。
速度会很快。如果你拥有的是一个列表
,并且不能将其更改为另一种类型,那么除了将长
转换为整数
之外,你什么也做不了。在需要时将位置
字段强制转换为int
有什么问题?Java列表不能包含更多的元素作为Integer.MAX\u VALUE
。转换为int或使用自定义列表类型。只需执行.get((int)position)
@GiorgiTsiklauri他当然可以这样做,但这回避了一个问题,也许他们实际上打算存储一个大于2^31个元素的列表,这样的转换将是徒劳的。