정수 데이터 유형이 지원하는 길이보다 긴 java 배열을 얻을 수있는 방법이 있습니까?자바의 임의의 배열 길이
Java에서 큰 정수를 사용하여 인덱싱 할 수있는 무언가를 찾고 있습니다. 기본적으로 지원되는 배열 길이가 구현할 알고리즘에 필요한만큼 커지지 않았기 때문입니다.
정수 데이터 유형이 지원하는 길이보다 긴 java 배열을 얻을 수있는 방법이 있습니까?자바의 임의의 배열 길이
Java에서 큰 정수를 사용하여 인덱싱 할 수있는 무언가를 찾고 있습니다. 기본적으로 지원되는 배열 길이가 구현할 알고리즘에 필요한만큼 커지지 않았기 때문입니다.
알고리즘을 변경할 필요가 없습니까? Integer.MAX
은 2^31-1
과 같으며 2147483647이며 각각 int
은 4 바이트를 갖습니다. 8589934588 바이트의 메모리 (8GB !!!).
Int32는 8 기가 바이트의 저장 공간을 제공합니다. 너는 많은 기억을 가지고 있니?
해시로 색인 배열 요소를 사용해야한다고 생각합니다. 단지 HashMap<BigInteger,YourValueType>
또는 일부 BigMemory 같은 libs와 대안 http://terracotta.org/products/bigmemory
배열과 함께이 알고리즘을 구현하지 않아도 될 수 있습니까? 알고리즘에 대해 조금 알려주시겠습니까? Btw, 당신은 언제나 색인 된 긴 클래스를 구현할 수 있지만 알고리즘 구현을 다시 생각하는 것이 더 나을 것이라고 생각합니다. –
가능하면 더 빠르기 때문에 배열이 필요합니다. 배열은 원시 길이의 배열을 사용하는 새로운 프라임 시브 (prime sieve) 알고리즘입니다. 즉 처음 두 번 실행 한 후 길이가 9699690보다 커야합니다. – Adam
체에서 소수를 얼마나 많이 생성하려고합니까? 일반적으로 65,000이나 그 중 몇 가지만을 사용하고 그 이상의 소수는 아마 소수 테스트를 사용하지 않겠습니까? 배열은 어떻게 사용됩니까? "getNearestPrime (N)"과 같은 작업을 수행 할 경우이 메서드를 구현하면 mod 연산을 통해 솔루션의 배열을 찾을 수 있습니다. 이렇게하면 여러 배열을 사용할 수 있습니다. –