Problem z BitSet

0

otoz chodzi o to ze :

System.out.println((new BitSet(72)).size());

no i wypluwa mi wynik 128.

System.out.println((new BitSet(130)).size());

wypluwa mi wynik 192.

Z czego wynika ze klasa BitSet rezerwuje miejsce co 64 bity.

Pytanie: Czy da sie tak zrobic, zeby BitSet rezerwowal mi miejsca na tyle bitów ile chce? Czy juz jego taka natura ze rezerwuje co 64 bity?

0

A jak ma sobie rezerwowac np 5 bitow? Najmniejsza jednostka ktora mozna rezerwowac to bajt, czyli 8 bitow. Java (w wersji 6) alokuje sobie co 64 bajty (wielkosc typu long), w opisie w klasie bitSet napisano ze chodzi o performance.

0

sprawdz sobie rozmiar przez length()

System.out.println((new BitSet(130)).length());

0

w sumie, bylo mi to potrzebne, do ilosci bitów ktore zapisałem. wiec lenght(), mi pasuje:) a nie size() . moze troche sie pospieszylem z tematem, ale niech bedzie dla potomnych:)

dzieki za szybka pomoc:)

0

a jednak lenght() to jest "logical lenght"- tak przynajmniej w dokumentacji pisze, wiec widze dobrej funkcjonalnosci takich "kontenerow" jak BitSet, ani nie mozna dwóch BitSetow zlepic w jeden, ani lenght(), ani size() nie dziala tak jak trzeba. poradzilem sobie poprzez tablice boolean[], BitSet jest po prostu cienki.

0

a jednak lenght() to jest "logical lenght"- tak przynajmniej w dokumentacji pisze, wiec widze dobrej funkcjonalnosci takich "kontenerow" jak BitSet, ani nie mozna dwóch BitSetow zlepic w jeden, ani lenght(), ani size() nie dziala tak jak trzeba. poradzilem sobie poprzez tablice boolean[], BitSet jest po prostu cienki.

a dokladnie co chcesz zrobic czego sie nie da ?

1 użytkowników online, w tym zalogowanych: 0, gości: 1