Главная Войти О сайте
Учебник для начинающих
Обзор языка
Установка и настройка
Синтаксис
Классы и объекты
Типы данных и литералы
Типы переменных
Модификаторы
Операторы
Циклы и операторы цикла
Цикл while
Цикл for
Улучшенный цикл for
Цикл do..while
Оператор break
Оператор continue
Операторы принятия решений
Оператор if
Оператор if..else
Вложенный оператор if
Оператор switch..case
Условный оператор (? :)
Числа
Методы byteValue(), shortValue(), intValue(), longValue(), floatValue(), doubleValue()
Метод compareTo()
Метод equals()
Метод valueOf()
Метод toString()
Метод parseInt()
Метод Math.abs()
Метод Math.ceil()
Метод Math.floor()
Метод Math.rint()
Метод Math.round()
Метод Math.min()
Метод Math.max()
Метод Math.exp()
Метод Math.log()
Метод Math.pow()
Метод Math.sqrt()
Метод Math.sin()
Метод Math.cos()
Метод Math.tan()
Метод Math.asin()
Метод Math.acos()
Метод Math.atan()
Метод Math.atan2()
Метод Math.toDegrees()
Метод Math.toRadians()
Метод Math.random()
Символы
Метод Character.isLetter()
Метод Character.isDigit()
Метод Character.isWhitespace()
Метод Character.isUpperCase()
Метод Character.isLowerCase()
Метод Character.toUpperCase()
Метод Character.toLowerCase()
Метод Character.toString()
Строки
Метод charAt()
Метод compareTo()
Метод compareToIgnoreCase()
Метод concat()
Метод contentEquals()
Метод copyValueOf()
Метод endsWith()
Метод equals()
Метод equalsIgnoreCase()
Метод getBytes()
Метод getChars()
Метод hashCode()
Метод indexOf()
Метод intern()
Метод lastIndexOf()
Метод length()
Метод matches()
Метод regionMatches()
Метод replace()
Метод replaceAll()
Метод replaceFirst()
Метод split()
Метод startsWith()
Метод subSequence()
Метод substring()
Метод toCharArray()
Метод toLowerCase()
Метод toString()
Метод toUpperCase()
Метод trim()
Метод valueOf()
Классы StringBuilder и StringBuffer
Метод append()
Метод reverse()
Метод delete()
Метод insert()
Метод replace()
Массивы
Дата и время
Регулярные выражения
Методы
Потоки ввода/вывода, файлы и каталоги
Класс ByteArrayInputStream
Класс DataInputStream
Класс ByteArrayOutputStream
Класс DataOutputStream
Класс File
Класс FileReader
Класс FileWriter
Исключения
Встроенные исключения
Вложенные и внутренние классы
Наследование
Переопределение
Полиморфизм
Абстракция
Инкапсуляция
Интерфейсы
Пакеты
Структуры данных
Интерфейс Enumeration
Класс BitSet
Класс Vector
Класс Stack
Класс Dictionary
Класс Hashtable
Класс Properties
Интерфейс Map

Класс BitSet

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

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

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

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

Методы

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

Метод и описание
1void and(BitSet bitSet)
AND содержимое вызываемого объекта BitSet, которое задано bitSet’ом. Результат помещается в вызываемый объект.
2void andNot(BitSet bitSet)
За каждый 1 бит в bitSet, соответствующий бит очищается в вызываемом BitSet.
3int cardinality()
Возвращает число заданных битов в вызываемом объекте.
4void clear()
Обнуляет все биты.
5void clear(int index)
Обнуляет бит под указанным индексом.
6void clear(int startIndex, int endIndex)
Обнуляет биты от startIndex (начальный индекс) до endIndex (конечный индекс).
7Object clone()
Создаёт копию вызываемого объекта BitSet.
8boolean equals(Object bitSet)
Возвращает true, если вызываемый набор битов эквивалентен тому, что прошёл в bitSet. В противном случае метод возвращает false.
9void flip(int index)
Возвращает бит под указанным индексом.
10void flip(int startIndex, int endIndex)
Возвращает биты от startIndex (начальный индекс) до endIndex (конечный индекс).
11boolean get(int index)
Возвращает текущее состояние бита под указанным индексом.
12BitSet get(int startIndex, int endIndex)
Возвращает BitSet, который содержит биты от startIndex (начальный индекс) до endIndex (конечный индекс). Вызываемый объект не изменяется.
13int hashCode()
Возвращает хэш-код для вызываемого объекта.
14boolean intersects(BitSet bitSet)
Возвращает true, если как минимум одна пара соответствующих битов в пределах вызываемого объекта и bitSet равна 1.
15boolean isEmpty()
Возвращает true, если все биты в вызываемом объекты – нули.
16int length()
Возвращает количество бит, необходимых для хранения содержимого в вызываемом BitSet. Значение определяется положением последнего 1 бит.
17int nextClearBit(int startIndex)
Возвращает индекс следующего очищенного бита (т.е. нулевой бит), начиная с индекса, определённым startIndex (начальный индекс).
18int nextSetBit(int startIndex)
Возвращает индекс следующего установленного бита (т.е. следующий 1 бит), начиная с индекса, заданным startIndex (начальный индекс). Если бит не установлен, возвращается -1.
19void or(BitSet bitSet)
OR содержимое вызываемого объекта BitSet с указанным bitSet. Результат помещается в вызываемый объект.
20void set(int index)
Устанавливает бит, указанный индексом.
21void set(int index, boolean v)
Устанавливает бит, указанный index в значение, переданное в v. True устанавливает бит, false очищает бит.
22void set(int startIndex, int endIndex)
Устанавливает биты от startIndex до endIndex.
23void set(int startIndex, int endIndex, boolean v)
Устанавливает биты от startIndex до endIndex, к значению, прошедшем в v. true sets the bits, false clears the bits.
24int size()
Возвращает количество битов в вызываемом объекте BitSet.
25String toString()
Возвращает строчный эквивалент вызываемого объекта BitSet.
26void 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:
{}

4Java.ru