Изменяемые Числовые Объекты

Как вы знаете, в Java существуют примитивные типы чисел (byte, short, int, long, float, double) и объекты-обертки над ними (Byte, Short, Integer, Long, Float, Double).

В различных статьях можно встретить диаметрально противоположные рекомендации, что использовать.

С одной стороны, обёртки объектов универсальны: их можно использовать со стандартными коллекциями, которые удобны, инкапсулированы и в целом красивы.

Но бокс убивает производительность и съедает много памяти.

Примитивные типы быстрые и компактные, но их можно размещать только в массивах, которые невозможно защитить от записи, а абстракция равна нулю.

Если вам нужно что-то вроде Map для сопоставления чего-либо с числами, вам придется либо мириться с потерей производительности и памяти, либо использовать сторонние библиотеки, реализующие нестандартный интерфейс.

Однако в некоторых случаях вам помогут изменяемые числа.

Представьте, что вам нужно посчитать количество различных строк, которые откуда-то берутся.

Часто пишут такой код:

   

public Map<String, Integer> countStrings() {

Теги: #mutable #numbers #java
Вместе с данным постом часто просматривают: