Главная | Обратная связь | Поможем написать вашу работу!
МегаЛекции

Пример. 29.3. Java – Класс BitSet. Конструкторы. Методы. Класс BitSet – создаёт особый тип массива, который содержит значения битов




Пример

Следующий пример показывает использование Enumeration в Java.

import java. util. Vector; import java. util. Enumeration; public class EnumerationTester { public static void main(String args[]) { Enumeration days; Vector dayNames = new Vector();       dayNames. add(" Воскресенье" ); dayNames. add(" Понедельник" ); dayNames. add(" Вторник" ); dayNames. add(" Среда" );  dayNames. add(" Четверг" ); dayNames. add(" Пятница" ); dayNames. add(" Суббота" ); days = dayNames. elements();       while (days. hasMoreElements()) {    System. out. println(days. nextElement());       } }}

Получим следующее:

ВоскресеньеПонедельникВторникСредаЧетвергПятницаСуббота

 

29. 3. Java – Класс BitSet

Класс BitSet – создаёт особый тип массива, который содержит значения битов. Массив BitSet может увеличиваться в размерах при необходимости. Это делает его схожим с вектором битов. Это устаревший класс, но он был полностью переделан в Java 2, версия 1. 4.

 

Конструкторы

В Java BitSet определяет следующие два конструктора.

Конструктор и описание
BitSet() Этот конструктор создаёт стандартный объект.
BitSet(int size) Этот конструктор позволяет вам указать его первоначальный размер, т. е. количество битов, которое он может содержать. Все биты инициализируются до нуля.

 

Методы

Класс BitSet в Java реализует интерфейс Cloneable и определяет методы, приведённые в следующей таблице:

Метод и описание
void and(BitSet bitSet) AND содержимое вызываемого объекта BitSet, которое задано bitSet’ом. Результат помещается в вызываемый объект.
void andNot(BitSet bitSet) За каждый 1 бит в bitSet, соответствующий бит очищается в вызываемом BitSet.
int cardinality() Возвращает число заданных битов в вызываемом объекте.
void clear() Обнуляет все биты.
void clear(int index) Обнуляет бит под указанным индексом.
void clear(int startIndex, int endIndex) Обнуляет биты от startIndex (начальный индекс) до endIndex (конечный индекс).
Object clone() Создаёт копию вызываемого объекта BitSet.
boolean equals(Object bitSet) Возвращает true, если вызываемый набор битов эквивалентен тому, что прошёл в bitSet. В противном случае метод возвращает false.
void flip(int index) Возвращает бит под указанным индексом.
void flip(int startIndex, int endIndex) Возвращает биты от startIndex (начальный индекс) до endIndex (конечный индекс).
boolean get(int index) Возвращает текущее состояние бита под указанным индексом.
BitSet get(int startIndex, int endIndex) Возвращает BitSet, который содержит биты от startIndex (начальный индекс) до endIndex (конечный индекс). Вызываемый объект не изменяется.
int hashCode() Возвращает хэш-код для вызываемого объекта.
boolean intersects(BitSet bitSet) Возвращает true, если как минимум одна пара соответствующих битов в пределах вызываемого объекта и bitSet равна 1.
boolean isEmpty() Возвращает true, если все биты в вызываемом объекты – нули.
int length() Возвращает количество бит, необходимых для хранения содержимого в вызываемом BitSet. Значение определяется положением последнего 1 бит.
int nextClearBit(int startIndex) Возвращает индекс следующего очищенного бита (т. е. нулевой бит), начиная с индекса, определённым startIndex (начальный индекс).
int nextSetBit(int startIndex) Возвращает индекс следующего установленного бита (т. е. следующий 1 бит), начиная с индекса, заданным startIndex (начальный индекс). Если бит не установлен, возвращается -1.
void or(BitSet bitSet) OR содержимое вызываемого объекта BitSet с указанным bitSet. Результат помещается в вызываемый объект.
void set(int index) Устанавливает бит, указанный индексом.
void set(int index, boolean v) Устанавливает бит, указанный index в значение, переданное в v. True устанавливает бит, false очищает бит.
void set(int startIndex, int endIndex) Устанавливает биты от startIndex до endIndex.
void set(int startIndex, int endIndex, boolean v) Устанавливает биты от startIndex до endIndex, к значению, прошедшем в v. true sets the bits, false clears the bits.
int size() Возвращает количество битов в вызываемом объекте BitSet.
String toString() Возвращает строчный эквивалент вызываемого объекта BitSet.
void xor(BitSet bitSet) XOR содержимое вызываемого объекта BitSet с указанным bitSet. Результат помещается в вызываемый объект.

 

Пример

Следующая программа показывает несколько методов, поддерживаемых этой структурой данных:

import java. util. BitSet; public class BitSetDemo { public static void main(String args[]) { BitSet bits1 = new BitSet(16); BitSet bits2 = new BitSet(16);       // set some bits for(int i = 0; i < 16; i++) {    if((i % 2) == 0) bits1. set(i);     if((i % 5)! = 0) bits2. set(i); }       System. out. println(" Исходная закономерность в bits1: " ); System. out. println(bits1); System. out. println(" \nИсходная закономерность в bits2: " ); System. out. println(bits2); // AND биты    bits2. and(bits1); System. out. println(" \nbits2 AND bits1: " ); System. out. println(bits2); // OR биты bits2. or(bits1); System. out. println(" \nbits2 OR bits1: " ); System. out. println(bits2); // XOR биты bits2. xor(bits1); System. out. println(" \nbits2 XOR bits1: " ); System. out. println(bits2); }}

Получим следующее:

Исходная закономерность в bits1: {0, 2, 4, 6, 8, 10, 12, 14} Исходная закономерность в bits2: {1, 2, 3, 4, 6, 7, 8, 9, 11, 12, 13, 14} bits2 AND bits1: {2, 4, 6, 8, 12, 14} bits2 OR bits1: {0, 2, 4, 6, 8, 10, 12, 14} bits2 XOR bits1: {}

 

Поделиться:





Воспользуйтесь поиском по сайту:



©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...