get(),但在Java中作为参数传递long



我正试图从列表List<Class> listofitems中获取一个元素,并且我有一个类型为long的全局变量position。我想执行listofitems.get(position),但它不允许我这样做,因为getint为参数。如果我想将position的类型保持为long,是否有其他方法可以做到这一点?(除了铸造positionint之外,还有其他方式吗(?

如果你想做到这一点,你必须构建一个类,它包含一组列表来表示你的数据。您可以编写自己的访问方法,将long拆分为较小的int,以访问列表中的正确位置。

请参阅以下答案:在java中使用long-as-ArrayList索引

这是一个必须通过Unsafeapi查询内存的点。如果列表/数组大于Integer.MAX_VALUE,这里是链接
注意:

  • 编写您自己的列表/数组实现。
  • Unsafe实际上是不安全的。
  • 这样的实施需要长期指数。
  • 速度会很快
  • 如果您拥有的是一个List<Class>,并且它不能更改为另一种类型,那么除了将该long转换为int之外,您什么也做不了。没有办法取任意的List并用除int之外的任何东西调用get

    最新更新