Dan*_*ham 22 java primitive vector arraylist primitive-types
有Java API中的可膨胀的数组类相当于Vector或ArrayList可以与图元可以使用类(INT,炭,双,等)?
我需要整数快速,可扩展的阵列,它似乎浪费有包裹他们在Integer班级,以便与使用它们Vector或ArrayList.我的google-fu让我失望了.
oxb*_*kes 37
遗憾的是,至少在Java API中没有这样的类.Java第三方产品有Primitive Collections.
将自动装箱与现有集合类(特别是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!
Run Code Online (Sandbox Code Playgroud)
它也是神秘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
Run Code Online (Sandbox Code Playgroud)
ska*_*man 13
http://trove4j.sourceforge.net/
Trove库为Java提供高速常规和原始集合.
请注意,因为Trove使用基元,所以它定义的类型不实现java.util集合接口.
(LGPL许可证)
现代Java支持原语的自动装箱,所以你可以说
List<Integer> lst = new ArrayList<Integer>;
lst.add(42);
Run Code Online (Sandbox Code Playgroud)
这至少避免了新整数的句法醋(42).
| 归档时间: |
|
| 查看次数: |
17770 次 |
| 最近记录: |