Spec-Zone .ru
спецификации, руководства, описания, API
|
public class BitSet extends Object implements Cloneable, Serializable
boolean
значение. Биты a BitSet
индексируются неотрицательными целыми числами. Человек индексированные биты может быть исследован, установлен, или очищен. Один BitSet
может использоваться, чтобы изменить содержание другого BitSet
через логический И, логичный содержащий ИЛИ, и логические операции "исключающее ИЛИ". По умолчанию у всех битов в наборе первоначально есть значение false
.
У каждого набора битов есть текущий размер, который является числом битов пространства, использующегося в настоящее время набором битов. Отметьте, что размер связывается с реализацией небольшого количества набора, таким образом, это может измениться с реализацией. Длина небольшого количества набора касается логической длины небольшого количества набора и определяется независимо от реализации.
Если не указано иное, передавая нулевой параметр к любому из методов в a BitSet
приведет к a NullPointerException
.
A BitSet
не безопасно для многопоточного использования без внешней синхронизации.
Конструктор и Описание |
---|
BitSet()
Создает новый набор битов.
|
BitSet(int nbits)
Создает немного набора, начальный размер которого является достаточно большим, чтобы явно представить биты с индексами в диапазоне
0 через nbits-1 . |
Модификатор и Тип | Метод и Описание |
---|---|
void |
and(BitSet set)
Выполняет логическое И этого целевого набора битов с набором битов параметра.
|
void |
andNot(BitSet set)
Очищает все биты в этом
BitSet чей соответствующий бит устанавливается в указанном BitSet . |
int |
cardinality()
Возвращает число набора битов к
true в этом BitSet . |
void |
clear()
Наборы все биты в этом BitSet к
false . |
void |
clear(int bitIndex)
Устанавливает бит, определенный индексированием к
false . |
void |
clear(int fromIndex, int toIndex)
Устанавливает биты от указанного
fromIndex (включительно) к указанному toIndex (монопольный) к false . |
Объект |
clone()
Клонирование этого
BitSet производит новое BitSet это равно этому. |
boolean |
equals(Object obj)
Сравнивает этот объект с указанным объектом.
|
void |
flip(int bitIndex)
Наборы бит в указанном индексируют к дополнению его текущей стоимости.
|
void |
flip(int fromIndex, int toIndex)
Наборы каждый бит от указанного
fromIndex (включительно) к указанному toIndex (монопольный) к дополнению его текущей стоимости. |
boolean |
get(int bitIndex)
Возвращается значение бита с указанным индексируют.
|
BitSet |
get(int fromIndex, int toIndex)
Возвращает новое
BitSet составленный из битов от этого BitSet от fromIndex (включительно) к toIndex (монопольный). |
int |
hashCode()
Возвращает значение хэш-кода для этого набора битов.
|
boolean |
intersects(BitSet set)
Возвращает true если указанное
BitSet имеет любой набор битов к true это также устанавливается в true в этом BitSet . |
boolean |
isEmpty()
Возвращает true если это
BitSet не содержит битов, которые устанавливаются в true . |
int |
length()
Возвращает "логический размер" этого
BitSet : индексирование самого высокого бита набора в BitSet плюс один. |
int |
nextClearBit(int fromIndex)
Возвращает индексирование первого бита, который устанавливается в
false это происходит на или после указанного начального значения индекса. |
int |
nextSetBit(int fromIndex)
Возвращает индексирование первого бита, который устанавливается в
true это происходит на или после указанного начального значения индекса. |
void |
or(BitSet set)
Выполняет логическое ИЛИ этого набора битов с параметром набора битов.
|
int |
previousClearBit(int fromIndex)
Возвращает индексирование самого близкого бита, который устанавливается в
false это происходит на или перед указанным начальным значением индекса. |
int |
previousSetBit(int fromIndex)
Возвращает индексирование самого близкого бита, который устанавливается в
true это происходит на или перед указанным начальным значением индекса. |
void |
set(int bitIndex)
Наборы бит в указанном индексируют к
true . |
void |
set(int bitIndex, boolean value)
Наборы бит в указанном индексируют к указанному значению.
|
void |
set(int fromIndex, int toIndex)
Устанавливает биты от указанного
fromIndex (включительно) к указанному toIndex (монопольный) к true . |
void |
set(int fromIndex, int toIndex, boolean value)
Устанавливает биты от указанного
fromIndex (включительно) к указанному toIndex (монопольный) к указанному значению. |
int |
size()
Возвращает число битов пространства фактически в использовании этим
BitSet представлять битовые значения. |
IntStream |
stream()
Возвращает поток индексов для который это
BitSet содержит немного в состоянии набора. |
byte[] |
toByteArray()
Возвращает новый байтовый массив, содержащий все биты в этом наборе битов.
|
long[] |
toLongArray()
Возвращает новый длинный массив, содержащий все биты в этом наборе битов.
|
Строка |
toString()
Возвращает строковое представление этого набора битов.
|
static BitSet |
valueOf(byte[] bytes)
Возвращает новый набор битов, содержащий все биты в данном байтовом массиве.
|
static BitSet |
valueOf(ByteBuffer bb)
Возвращает новый набор битов, содержащий все биты в данном буфере байта между его позицией и пределом.
|
static BitSet |
valueOf(long[] longs)
Возвращается новый набор битов, содержащий все биты в даваемом долго, выстраивают.
|
static BitSet |
valueOf(LongBuffer lb)
Возвращается новый набор битов, содержащий все биты в даваемом долго, буферизуют между его позицией и пределом.
|
void |
xor(BitSet set)
Выполняет логический XOR этого набора битов с параметром набора битов.
|
public BitSet()
false
.public BitSet(int nbits)
0
через nbits-1
. Все биты первоначально false
.nbits
- начальный размер набора битовNegativeArraySizeException
- если указанный начальный размер отрицателенpublic static BitSet valueOf(long[] longs)
Более точно, BitSet.valueOf(longs).get(n) == ((longs[n/64] & (1L<<(n%64))) != 0)
для всех n < 64 * longs.length
.
Этот метод эквивалентен BitSet.valueOf(LongBuffer.wrap(longs))
.
longs
- длинный массив, содержащий представление с прямым порядком байтов последовательности битов, которые будут использоваться в качестве начальных битов нового набора битовpublic static BitSet valueOf(LongBuffer lb)
Более точно, BitSet.valueOf(lb).get(n) == ((lb.get(lb.position()+n/64) & (1L<<(n%64))) != 0)
для всех n < 64 * lb.remaining()
.
Длинный буфер не изменяется этим методом, и никакая ссылка на буфер не сохраняется набором битов.
lb
- длинный буфер, содержащий представление с прямым порядком байтов последовательности битов между ее позицией и пределом, чтобы использоваться в качестве начальных битов нового набора битовpublic static BitSet valueOf(byte[] bytes)
Более точно, BitSet.valueOf(bytes).get(n) == ((bytes[n/8] & (1<<(n%8))) != 0)
для всех n < 8 * bytes.length
.
Этот метод эквивалентен BitSet.valueOf(ByteBuffer.wrap(bytes))
.
bytes
- байтовый массив, содержащий представление с прямым порядком байтов последовательности битов, которые будут использоваться в качестве начальных битов нового набора битовpublic static BitSet valueOf(ByteBuffer bb)
Более точно, BitSet.valueOf(bb).get(n) == ((bb.get(bb.position()+n/8) & (1<<(n%8))) != 0)
для всех n < 8 * bb.remaining()
.
Буфер байта не изменяется этим методом, и никакая ссылка на буфер не сохраняется набором битов.
bb
- буфер байта, содержащий представление с прямым порядком байтов последовательности битов между ее позицией и пределом, чтобы использоваться в качестве начальных битов нового набора битовpublic byte[] toByteArray()
Более точно, если byte[] bytes = s.toByteArray();
тогда bytes.length == (s.length()+7)/8
и s.get(n) == ((bytes[n/8] & (1<<(n%8))) != 0)
для всех n < 8 * bytes.length
.
public long[] toLongArray()
Более точно, если long[] longs = s.toLongArray();
тогда longs.length == (s.length()+63)/64
и s.get(n) == ((longs[n/64] & (1L<<(n%64))) != 0)
для всех n < 64 * longs.length
.
public void flip(int bitIndex)
bitIndex
- индексирование бита, чтобы зеркально отразитьIndexOutOfBoundsException
- если указанные индексируют, отрицательноpublic void flip(int fromIndex, int toIndex)
fromIndex
(включительно) к указанному toIndex
(монопольный) к дополнению его текущей стоимости.fromIndex
- индексируйте первого бита, чтобы зеркально отразитьtoIndex
- индексируйте после последнего бита, чтобы зеркально отразитьIndexOutOfBoundsException
- если fromIndex
отрицательно, или toIndex
отрицательно, или fromIndex
больше чем toIndex
public void set(int bitIndex)
true
.bitIndex
- немного индексируйтеIndexOutOfBoundsException
- если указанные индексируют, отрицательноpublic void set(int bitIndex, boolean value)
bitIndex
- немного индексируйтеvalue
- булево значение, чтобы установитьIndexOutOfBoundsException
- если указанные индексируют, отрицательноpublic void set(int fromIndex, int toIndex)
fromIndex
(включительно) к указанному toIndex
(монопольный) к true
.fromIndex
- индексируйте первого бита, который будет установленtoIndex
- индексируйте после последнего бита, который будет установленIndexOutOfBoundsException
- если fromIndex
отрицательно, или toIndex
отрицательно, или fromIndex
больше чем toIndex
public void set(int fromIndex, int toIndex, boolean value)
fromIndex
(включительно) к указанному toIndex
(монопольный) к указанному значению.fromIndex
- индексируйте первого бита, который будет установленtoIndex
- индексируйте после последнего бита, который будет установленvalue
- значение, чтобы установить выбранные биты вIndexOutOfBoundsException
- если fromIndex
отрицательно, или toIndex
отрицательно, или fromIndex
больше чем toIndex
public void clear(int bitIndex)
false
.bitIndex
- индексирование бита, который будет очищенIndexOutOfBoundsException
- если указанные индексируют, отрицательноpublic void clear(int fromIndex, int toIndex)
fromIndex
(включительно) к указанному toIndex
(монопольный) к false
.fromIndex
- индексируйте первого бита, который будет очищенtoIndex
- индексируйте после последнего бита, который будет очищенIndexOutOfBoundsException
- если fromIndex
отрицательно, или toIndex
отрицательно, или fromIndex
больше чем toIndex
public void clear()
false
.public boolean get(int bitIndex)
true
если бит с индексированием bitIndex
в настоящий момент устанавливается в этом BitSet
; иначе, результат false
.bitIndex
- бит индексируетIndexOutOfBoundsException
- если указанные индексируют, отрицательноpublic BitSet get(int fromIndex, int toIndex)
BitSet
составленный из битов от этого BitSet
от fromIndex
(включительно) к toIndex
(монопольный).fromIndex
- индексируйте первого бита, чтобы включатьtoIndex
- индексируйте после последнего бита, чтобы включатьBitSet
от диапазона этого BitSet
IndexOutOfBoundsException
- если fromIndex
отрицательно, или toIndex
отрицательно, или fromIndex
больше чем toIndex
public int nextSetBit(int fromIndex)
true
это происходит на или после указанного начального значения индекса. Если никакой такой бит не существует тогда -1
возвращается. Выполнить итерации по true
биты в a BitSet
, используйте следующий цикл:
for (int i = bs.nextSetBit(0); i >= 0; i = bs.nextSetBit(i+1)) {
// operate on index i here
}
fromIndex
- индексирование, чтобы начать проверять от (включительно)-1
если нет такого битаIndexOutOfBoundsException
- если указанные индексируют, отрицательноpublic int nextClearBit(int fromIndex)
false
это происходит на или после указанного начального значения индекса.fromIndex
- индексирование, чтобы начать проверять от (включительно)IndexOutOfBoundsException
- если указанные индексируют, отрицательноpublic int previousSetBit(int fromIndex)
true
это происходит на или перед указанным начальным значением индекса. Если никакой такой бит не существует, или если -1
дается как начальное значение индекса, тогда -1
возвращается. Выполнить итерации по true
биты в a BitSet
, используйте следующий цикл:
for (int i = bs.length(); (i = bs.previousSetBit(i-1)) >= 0; ) {
// operate on index i here
}
fromIndex
- индексирование, чтобы начать проверять от (включительно)-1
если нет такого битаIndexOutOfBoundsException
- если указанные индексируют, меньше чем -1
public int previousClearBit(int fromIndex)
false
это происходит на или перед указанным начальным значением индекса. Если никакой такой бит не существует, или если -1
дается как начальное значение индекса, тогда -1
возвращается.fromIndex
- индексирование, чтобы начать проверять от (включительно)-1
если нет такого битаIndexOutOfBoundsException
- если указанные индексируют, меньше чем -1
public int length()
BitSet
: индексирование самого высокого бита набора в BitSet
плюс один. Возвраты обнуляют если BitSet
не содержит битов набора.BitSet
public boolean isEmpty()
BitSet
не содержит битов, которые устанавливаются в true
.BitSet
пустоpublic boolean intersects(BitSet set)
BitSet
имеет любой набор битов к true
это также устанавливается в true
в этом BitSet
.set
- BitSet
пересечься сBitSet
пересекает указанное BitSet
public int cardinality()
true
в этом BitSet
.true
в этом BitSet
public void and(BitSet set)
true
если и только если это у обоих первоначально было значение true
и у соответствующего бита в параметре набора битов также было значение true
.set
- немного набораpublic void or(BitSet set)
true
если и только если это у любого уже было значение true
или у соответствующего бита в параметре набора битов есть значение true
.set
- немного набораpublic void xor(BitSet set)
true
если и только если один из следующих операторов содержит: true
, и у соответствующего бита в параметре есть значение false
. false
, и у соответствующего бита в параметре есть значение true
. set
- немного набораpublic void andNot(BitSet set)
BitSet
чей соответствующий бит устанавливается в указанном BitSet
.set
- BitSet
с которым можно замаскировать это BitSet
public int hashCode()
BitSet
. Хэш-код определяется, чтобы быть результатом следующего вычисления:
public int hashCode() {
long h = 1234;
long[] words = toLongArray();
for (int i = words.length; --i >= 0; )
h ^= words[i] * (i + 1);
return (int)((h >> 32) ^ h);
}
Отметьте, что хэш-код изменяется, если набор битов изменяется.hashCode
в class Object
Object.equals(java.lang.Object)
, System.identityHashCode(java.lang.Object)
public int size()
BitSet
представлять битовые значения. Максимальный элемент в наборе является размером - 1-ый элемент.public boolean equals(Object obj)
true
если и только если параметр не null
и a Bitset
объект, у которого есть точно тот же самый набор набора битов к true
как этот набор битов. Таким образом, для каждого неотрицательного int
индексировать k
, ((BitSet)obj).get(k) == this.get(k)должна быть истина. Текущие размеры двухбитовых наборов не сравниваются.
public Object clone()
BitSet
производит новое BitSet
это равно этому. Клон набора битов является другим набором битов, у которого есть точно тот же самый набор битов к true
как этот набор битов.public String toString()
BitSet
содержит немного в состоянии набора, десятичное представление которого индексируют, включается в результат. Такие индексы перечисляются в порядке от самого низкого до самого высокого, разделенного", "(запятая и пространство) и окружил фигурными скобками, приводящими к обычной математической нотации для ряда целых чисел. Пример:
BitSet drPepper = new BitSet();Теперь
drPepper.toString()
возвраты"{}
".
drPepper.set(2);Теперь
drPepper.toString()
возвраты"{2}
".
drPepper.set(4); drPepper.set(10);Теперь
drPepper.toString()
возвраты"{2, 4, 10}
".public IntStream stream()
BitSet
содержит немного в состоянии набора. Индексы возвращаются в порядке от самого низкого до самого высокого. Размер потока является числом битов в состоянии набора, равном значению, возвращенному cardinality()
метод. Набор битов должен остаться постоянным во время выполнения терминальной операции с потоками. Иначе, результат терминальной операции с потоками неопределен.
Для дальнейшей ссылки API и документации разработчика, см. Java Документация SE. Та документация содержит более подробные, предназначенные разработчиком описания, с концептуальными краткими обзорами, определениями сроков, обходных решений, и рабочих примеров кода.
Авторское право © 1993, 2013, Oracle и/или его филиалы. Все права защищены.
Проект сборка-b92