get () de uma lista, mas passando o argumento em Java [duplicado]

Nov 18 2020

Estou tentando obter um elemento de uma lista List<Class> listofitemse tenho uma variável global positiondo tipo long. Eu gostaria de atuar, listofitems.get(position)mas não me permite, pois getleva intcomo argumento. Se eu quiser manter o tipo de positionas long, há alguma outra maneira de fazer isso? (qualquer outra maneira além de lançar positionpara int)?

Respostas

EricLang Nov 18 2020 at 03:18

Se você quisesse fazer isso, teria que construir uma classe que contenha um agrupamento de listas para representar seus dados. Você pode escrever seu próprio método de acesso que divide seu long em ints menores, para acessar a posição correta em sua lista.

Veja esta resposta: Usando um índice long as ArrayList em java

D.Sikilai Nov 18 2020 at 03:38

Este é um ponto onde a memória deve ser consultada por meio da UnsafeAPI. No caso de lista / matrizes maiores do que Integer.MAX_VALUE aqui está o link.
NOTA:

  • Escreva sua própria implementação da lista / array.
  • Unsafe é literalmente inseguro.
  • Tal implementação exigiria índices longos.
  • A velocidade será abundante.
  • LouisWasserman Nov 18 2020 at 03:42

    Se o que você tem é um List<Class>e não pode ser alterado para outro tipo, não há nada que você possa fazer além de convertê-lo longem um int. Não há como pegar um arbitrário Liste ligar getcom nada além de um int.