从列表中获取(),但在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个元素的列表,这样的转换将是徒劳的。