Вектор Java или ArrayList для примитивов

Вы никогда не должны использовать именованное взаимное исключение для реализовывания приложения единственного экземпляра (или по крайней мере не для производственного кода). Вредоносный код может легко DoS ( Отказ в обслуживании ) Ваша задница...

22
задан oxbow_lakes 19 August 2009 в 18:12
поделиться

4 ответа

К сожалению, такого класса нет, по крайней мере, в Java API. Существует Primitive Collections for 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
37
ответ дан 29 November 2019 в 03:48
поделиться

http: //trove4j.sourceforge .net /

Библиотека Trove обеспечивает высокую скорость регулярные и примитивные коллекции для Java.

Обратите внимание, что, поскольку Trove использует примитивы, типы, которые он определяет, не реализуют интерфейсы коллекций java.util.

(лицензия LGPL)

13
ответ дан 29 November 2019 в 03:48
поделиться

Современная Java поддерживает автобоксирование примитивов, так что вы можете сказать

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

Это, по крайней мере, позволяет избежать синтаксического уксуса нового Integer (42).

5
ответ дан 29 November 2019 в 03:48
поделиться

Joda-Primitives .

Есть также Примитивные Коллекции для Java , но они немного устарели.

5
ответ дан 29 November 2019 в 03:48
поделиться
Другие вопросы по тегам:

Похожие вопросы: