목록에서 get (), 그러나 Java에서 인수로 전달 [중복]

Nov 18 2020

목록에서 요소를 가져 List<Class> listofitems오려고하는데 전역 변수 position유형이 long있습니다. 내가 수행하고자 listofitems.get(position)하지만 이후 내가 그렇게 할 수 나던 get소요 int인수로. 유형을 position로 유지하려면 long다른 방법이 있습니까? (에 캐스팅 position하는 것 외에 다른 방법이 int있습니까?)

답변

EricLang Nov 18 2020 at 03:18

이렇게하려면 데이터를 나타내는 목록 그룹을 보유하는 클래스를 구성해야합니다. 목록의 올바른 위치에 액세스하기 위해 long을 더 작은 정수로 분할하는 고유 한 액세스 방법을 작성할 수 있습니다.

이 답변을 참조하십시오 : Java에서 long as ArrayList 인덱스 사용

D.Sikilai Nov 18 2020 at 03:38

이것은 UnsafeAPI를 통해 메모리를 참조해야하는 지점 입니다. Integer.MAX_VALUE 여기 보다 큰 목록 / 배열의 경우 링크가 있습니다.
노트:

  • 목록 / 배열의 자체 구현을 작성하십시오.
  • Unsafe 말 그대로 안전하지 않습니다.
  • 이러한 구현에는 긴 인덱스가 필요합니다.
  • 속도가 풍부합니다.
  • LouisWasserman Nov 18 2020 at 03:42

    가지고있는 것이 List<Class>이고 다른 유형으로 변경할 수없는 경우 long이를 int. 임의을 할 수있는 방법이 없습니다 List및 전화 get아무것도하지만, 함께가 int.