get () da una lista, ma passando come argomento lungo in Java [duplicato]

Nov 18 2020

Sto cercando di ottenere un elemento da un elenco List<Class> listofitemse ho una variabile globale positiondi tipo long. Vorrei esibirmi listofitems.get(position)ma non me lo permette poiché getprende intcome argomento. Se voglio mantenere il tipo di positioncome long, se ci sono altri modi per farlo? (qualsiasi altro modo oltre a trasmettere positiona int)?

Risposte

EricLang Nov 18 2020 at 03:18

Se volessi farlo, dovresti costruire una classe che contenga un raggruppamento di elenchi per rappresentare i tuoi dati. Puoi scrivere il tuo metodo di accesso che divide il tuo long in int più piccoli, per accedere alla giusta posizione nella tua lista.

Vedi questa risposta: utilizzo di un indice long as ArrayList in java

D.Sikilai Nov 18 2020 at 03:38

Questo è un punto in cui la memoria deve essere consultata tramite l' UnsafeAPI. In caso di elenco / array maggiore di Integer.MAX_VALUE qui è il collegamento.
NOTA:

  • Scrivi la tua implementazione della lista / matrice.
  • Unsafe è letteralmente pericoloso.
  • Una simile implementazione richiederebbe indici lunghi.
  • La velocità sarà abbondante.
  • LouisWasserman Nov 18 2020 at 03:42

    Se quello che hai è un List<Class>, e non può essere cambiato in un altro tipo, allora non c'è niente che puoi fare oltre a convertirlo longin un int. Non c'è modo di prendere un arbitrario Liste chiamare getcon altro che un int.