класс BitSet – позволяет работать с битами
класс BitSet – позволяет работать с битами BitSet a=new BitSet(); BitSet b=new BitSet(); a. set(0); a. set(1); a. set(2); // номер бита который переключаю в true b. set(0); b. set(1); b. set(8); b. set(9); putBits(a, 12); //111000000000 putBits(b, 12); //110000001100
a. or(b); putBits(a, 12); //111000001100 } static void putBits(BitSet bits, int len) { for(int i=0; i< len; i++) System. out. print( (bits. get(i))? 1: 0); System. out. println(); } Класс BitSet предназначен для работы с последовательностями битов. Каждый компонент этой коллекции может принимать булево значение, которое обозначает, установлен бит или нет. Содержимое BitSet может быть модифицировано содержимым другого BitSet с использованием операций AND, OR или XOR (исключающее или). BitSet имеет текущий размер (количество установленных битов), может динамически изменяться. По умолчанию все биты в наборе устанавливаются в 0 (false). Установка и очистка битов в BitSet осуществляется методами set(int index) и clear(int index). Метод int length() возвращает " логический" размер набора битов, int size() возвращает количество памяти, занимаемой битовой последовательностью BitSet.
Класс Random используется для получения последовательности псевдослучайных чисел. В качестве " зерна" применяется 48-битовое число. Если для инициализации Random задействовать одно и то же число, будет получена та же самая последовательность псевдослучайных чисел. В классе Random определено также несколько методов, которые возвращают псевдослучайные величины для примитивных типов Java.
Дополнительно следует отметить наличие двух методов: double nextGaussian() - возвращает случайное число в диапазоне от 0. 0 до 1. 0 распределенное по нормальному закону, и void nextBytes(byte[] arr) - заполняет массив arr случайными величинами типа byte.
Java Collections Framework (JCF)
В отличие от С++, generic-и в Java позволяют задать класс, от которого должен быть унаследован параметр generic-а, или интерфейс, который он должен реализовать. Это делается с помощью ключевого слова extends. Extends можно применять и для параметров generic-классов: class < T extends Glyph> GlyphsContainter { ... public void addGlyph(T glyph){... } } Как в методах, так и в классах можно задать более одного базового интерфейса, который должен реализовывать generic-параметр. Это делается при помощи следующего синтаксиса: class < T extends Glyph & MoveableGlyph > MoveableGlyphsContainter { ... public void addGlyph(T glyph){... } } Маски Маски являются еще одним отличием Java generic-ов от шаблонов С++. Они используются тогда, когда нужно абстрагироваться от конкретных аргументов типа, и позволяют использовать его там, где не требуется знать конкретные типы параметров. Например, это может быть метод, который очищает список, или метод, которому не интересен тип ключа карты (Map), т. к. он оперирует только со значениями. Приведенные ниже примеры помогут более подробно разобраться, что такое маски и для чего они нужны. Синтаксически маска – это выражение, состоящее из символа ‘? ’, и, возможно, ограничений, например, ‘? extends T’ или ‘? super T’, где T – тип. Чаще маски применяются при описании типов параметров методов, но их также можно использовать просто в объявлении переменных в теле метода или членов класса.
Итератор – паттерн поведения объектов, предоставляющий последовательный доступ ко всем элементам составного объекта, не раскрывая его внутреннего представления.
С
Воспользуйтесь поиском по сайту: ©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...
|