Вы никогда не должны использовать именованное взаимное исключение для реализовывания приложения единственного экземпляра (или по крайней мере не для производственного кода). Вредоносный код может легко DoS ( Отказ в обслуживании ) Ваша задница...
К сожалению, такого класса нет, по крайней мере, в 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
http: //trove4j.sourceforge .net /
Библиотека Trove обеспечивает высокую скорость регулярные и примитивные коллекции для Java.
Обратите внимание, что, поскольку Trove использует примитивы, типы, которые он определяет, не реализуют интерфейсы коллекций java.util.
(лицензия LGPL)
Современная Java поддерживает автобоксирование примитивов, так что вы можете сказать
List<Integer> lst = new ArrayList<Integer>;
lst.add(42);
Это, по крайней мере, позволяет избежать синтаксического уксуса нового Integer (42).
Есть также Примитивные Коллекции для Java , но они немного устарели.