Java Vector 或 ArrayList for Primitives

Java API 中是否有可扩展数组类,该类等效于 or 类,可以与基元(int、char、double 等)一起使用?VectorArrayList

我需要一个快速的,可扩展的整数数组,并且必须将它们包装在类中才能将它们与 或 一起使用似乎是浪费的。我的谷歌-fu让我失望了。IntegerVectorArrayList


答案 1

不幸的是,至少在Java API中没有这样的类。有Java第三方产品的基元集合

将自动装箱与现有集合类(特别是实现)一起使用是非常危险的。例如: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!

它也是神秘访问的常见来源(也许通过一个):NullPointerExceptionsMap

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

答案 2

http://trove4j.sourceforge.net/

Trove 库为 Java 提供了高速的常规和原始集合。

请注意,由于 Trove 使用基元,因此它定义的类型不会实现 java.util 集合接口。

(LGPL 许可证)