Java的Vector或ArrayList中的基元
-
18-09-2019 - |
题
是否有Java API中的可膨胀的数组类相当于可与原语使用的Vector
或ArrayList
类(INT,炭,双,等)?
我需要整数快速,可扩展的阵列,它似乎浪费必须将它们包装在Integer
类,以便与Vector
或ArrayList
使用它们。我的谷歌福失败了我。
解决方案
有是不幸的没有这样的类下,至少在Java API英寸有href="http://pcj.sourceforge.net/" rel="noreferrer">原始类别为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!
NullPointerExceptions
存取(或许通过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/
在特罗韦库提供高速 定期和原始收藏了 Java的。
请注意,由于特罗韦使用原语的类型,它定义不执行java.util中的集合接口。
(LGPL许可证)
现代的Java支持原语的自动装箱,因此可以说
List<Integer> lst = new ArrayList<Integer>;
lst.add(42);
这至少避免了新的整数的句法醋(42)。
Eclipse的类别具有用于所有基本类型原语的ArrayList,以及原始集袋,叠和地图。有所有的原始容器类型中的不可改变的版本。
注意:我为Eclipse类别的提交