Java – Data Structures -BitSet Class

BitSet դասը ստեղծում է հատուկ տեսակի զանգված, որը պարունակում է bit արժեքներ: BitSet զանգվածը կարող է մեծանել չափով ըստ անհրաժեշտության: Այս հատկություննը նմանեցնում է այն վեկտոր բիտին: Սա ժառանգված դաս է, սակայն այն ամբողջովին վերակառուցվել է Java 2-ի 1.4 տարբերակում:

BitSet-ը սահմանում է հետեւյալ երկու կոնստրուկտորները՝

Sr.No. Constructor & Description
1 BitSet( )

Կոնստրուկտորը ստեղծում է default object.

2 BitSet(int size)

Այս կոնստրուկտորը թույլ է տալիս նշել վերջինիս նախնական չափը, բիտերի քանակը, որը այն կարող է ներառել։ All bits are initialized to zero. Բոլոր բիթերը սկզբնավորվում են զրոյից։

 

BitSet-ը իրականացնում է Cloneable ինտերֆեյսը և սահմանում է հետեւյալ աղյուսակում նշված մեթոդները՝

Sr.No. Method & Description
1 void and(BitSet bitSet)

ANDs-ը պարունակում է BitSet object-ը, որոնք նշված են bitSet-ում. Արդյունքը տեղադրվում է invoking object-ում։

2 void andNot(BitSet bitSet)

BitSet-ի յուրաքանչյուր 1 բիթի համար BitSet-ի ներդիրում համապատասխան բիթը մաքրվում է:

3 int cardinality( )

Վերադարձնում է the invoking object-ի մեջ սահմանված բիթերի քանակը:

4 void clear( )

Զրոյացնում է բոլոր բիտերը։

5 void clear(int index)

Զրոյացնում է ինդեքսի կողմից սահմանված բիտերը։

6 void clear(int startIndex, int endIndex)

Զրոյացնում է startIndex-ից մինչև բիտերը։

7 Object clone( )

Կրնկնօրինակում է BitSet object.

8 boolean equals(Object bitSet)

Վերադարձնում է true, եթե invoking bit set-ը հավասար է bitSet-ում գոյություն ունեցողին: Հակառակ դեպքում՝ false:

9 void flip(int index)

Փոփոխում է ինդեքսի կողմից նշված բիտը։

10 void flip(int startIndex, int endIndex)

Փոփոխում է բիտը startIndex-ից մինչև endIndex։

11 boolean get(int index)

Վերադարձնում է բիտի ընթացիկ վիճակը նշված ինդեքսում:

12 BitSet get(int startIndex, int endIndex)

Վերադարձնում է BitSet, որը բաղկացած է բիտերից startIndex-ից մինչև endIndex: invoking object չի փոխվում:

13 int hashCode( )

Վերադարձնում է hash code invoking object-ի համար.

14 boolean intersects(BitSet bitSet)

Վերադարձնում է true, եթե ամենաքիչը մեկ համապատասխան բիտերի զույգը և bitSet 1 է։

15 boolean isEmpty( )

Վերադարձնում է true, եթե բոլոր բիտերը invoking object-ում 0 են։

16 int length( )

Վերադարձնում է BitSet-ի բովանդակությունը պահպանելու համար պահանջվող բիտերի քանակը: Այս արժեքը որոշվում է վերջին 1 բիթի գտնվելու վայրով։

17 int nextClearBit(int startIndex)

Վերադարձնում է հաջորդ մաքրված բիտի ինդեքսը, (that is, the next zero bit), startIndex-ի կողմից նշված ինդեքսից սկսած։

18 int nextSetBit(int startIndex)

Վերադարձնում է հաջորդ բիտի ինդեքսը (that is, the next 1 bit), startIndex-ի կողմից նշված ինդեքսից սկսած։ Եթե ոչ մի բիտ սահմանված չէ վերադարձնում է -1

19 void or(BitSet bitSet)

ORS պարունակում է BitSet-ի օբյեկտի բովանդակությունը, որը սահմանվում է bitSet-ի կողմից: Արդյունքը տեղադրվում է invoking օբյեկտում։

20 void set(int index)

Սահամանում է ինդեքսի կողմից նշված բիտը։

21 void set(int index, boolean v)

Սահամանում է ինդեքսի կողմից նշված բիտը։ True սահմանում է բիտը, false-ը մաքրում է բիտը։

22 void set(int startIndex, int endIndex)

Սահմանում է բիտը startIndex-ից մինչև endIndex.

23 void set(int startIndex, int endIndex, boolean v)

Սահմանում է բիտերը startIndex-ից մինչև endIndex-ը։ True սահմանում է բիտը, false-ը մաքրում է բիտը։

24 int size( )

Վերադարձնում է BitSet օբյեկտի մեջ գտնվող բիթերի քանակը:

25 String toString( )

Վերադարձնում է BitSet օբյեկտի տողային համարժեքը:

26 void xor(BitSet bitSet)

XOR-ն պարունակում է BitSet-ի օբյեկտի բովանդակությունը, որը նշված է bitSet-ի կողմից: Արդյունքը տեղադրվում է invoking օբյեկտում։

 

Օրինակ՝

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(“Initial pattern in bits1: “);

System.out.println(bits1);

System.out.println(“\nInitial pattern in bits2: “);

System.out.println(bits2);

 

// AND bits

bits2.and(bits1);

System.out.println(“\nbits2 AND bits1: “);

System.out.println(bits2);

 

// OR bits

bits2.or(bits1);

System.out.println(“\nbits2 OR bits1: “);

System.out.println(bits2);

 

// XOR bits

bits2.xor(bits1);

System.out.println(“\nbits2 XOR bits1: “);

System.out.println(bits2);

}

}

Արդյունքը՝

Initial pattern in bits1:

{0, 2, 4, 6, 8, 10, 12, 14}

 

Initial pattern in 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:

{}