문제

Java API에는 확장 가능한 배열 클래스가 Vector 또는 ArrayList 프리미티브 (int, char, double 등)와 함께 사용할 수있는 클래스?

정수를위한 빠르고 확장 가능한 배열이 필요하며 그것들을 Integer 함께 사용하기 위해 클래스 Vector 또는 ArrayList. 내 Google-Fu가 실패하고 있습니다.

도움이 되었습니까?

해결책

불행히도 있습니다 그런 수업이 없습니다, 적어도 Java API에서. 거기에 있습니다 Java의 원시 컬렉션 제 3 자 제품.

기존 컬렉션 클래스 (특히 List 구현). 예를 들어:

List<Integer> l = new ArrayList<Integer>();
l.add(4);

l.remove(4); //will throw ArrayIndexOutOfBoundsException
l.remove(new Integer(4)); //what you probably intended!

그리고 그것은 또한 신비한 일반적인 원천입니다 NullPointerExceptions 액세스 (아마도 a Map):

Map<String, Integer> m = new HashMap<String, Integer>();
m.put("Hello", 5);
int i = m.get("Helo Misspelt"); //will throw a NullPointerException

다른 팁

http://trove4j.sourceforge.net/

Trove Library는 Java를위한 고속 일반 및 원시 컬렉션을 제공합니다.

Trove는 프리미티브를 사용하기 때문에 정의하는 유형은 java.util 컬렉션 인터페이스를 구현하지 않습니다.

(LGPL 라이센스)

Modern Java는 프리미티브의 자서전을 지원하므로

List<Integer> lst = new ArrayList<Integer>;
lst.add(42);

그것은 적어도 새로운 정수의 구문 식초를 피합니다 (42).

Joda-Primitives.

도 있습니다 Java의 원시 컬렉션 그러나 그것은 약간 오래된 것입니다.

일식 컬렉션 원시 세트, 가방, 스택 및 맵뿐만 아니라 모든 원시 유형에 대한 기본 배열리스트가 있습니다. 모든 원시 컨테이너 유형의 불변 버전도 있습니다.

참고 : 나는 Eclipse 컬렉션을위한 커피터입니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top