深入Java----集合----BitSet
BitSet类
大小可动态改变, 取值为true或false的位集合。用于表示一组布尔标志。
java中有三种移位运算符
<< : 左移运算符,num << 1,相当于num乘以2
>> : 右移运算符,num >> 1,相当于num除以2
>>> : 无符号右移,忽略符号位,空位都以0补齐
为什么java中1L<<32等于4294967296,而1<<32等于1
你需要了解整数的二进制存储形式以及移位运算的基本操作
对于int类型的整数移位a<<b,系统先用b对32求余,得到的结果才是真正移位的位数
对于long类型的整数移位,同上,不过是对64求余
对于1L<<,实际移动位数32%=
对于1<<,实际移动位数32%= 1L:
1L<<: = ^ = :
<<: =
words[wordIndex] |= (1L << bitIndex);
相当于对bitIndex对64进行取余运算(左移会轮循),然后让1移动到数组的该余数位置,再将此值设置为true
深入Java----集合----BitSet的更多相关文章
- Java 集合深入理解(12):古老的 Vector
点击查看 Java 集合框架深入理解 系列, - ( ゜- ゜)つロ 乾杯~ 今天刮台风,躲屋里看看 Vector ! 都说 Vector 是线程安全的 ArrayList,今天来根据源码看看是不是这 ...
- Java数据结构: java.util.BitSet源码学习
接着上一篇Blog:一道面试题与Java位操作 和 BitSet 库的使用,分析下Java源码中BitSet类的源码. 位图(Bitmap),即位(Bit)的集合,是一种常用的数据结构,可用于记录大量 ...
- java.util.BitSet 详细分析 学习笔记
1,BitSet类 大小可动态改变, 取值为true或false的位集合.用于表示一组布尔标志. 此类实现了一个按需增长的位向量.位 set 的每个组件都有一个 boolean 值.用非负的 ...
- Java集合框架入门介绍(一)
Java工具包(java.util)提供了强大的数据结构,主要有以下几种接口或类 枚举Enumeration 接口 从数据集合中取回一系列连续值的方法 位集合 BitSet 可以单独清楚或设置的位和标 ...
- Java - 27 Java 集合框架
Java 集合框架 早在Java 2中之前,Java就提供了特设类.比如:Dictionary, Vector, Stack, 和Properties这些类用来存储和操作对象组. 虽然这些类都非常有用 ...
- Java 性能调优指南之 Java 集合概览
[编者按]本文作者为拥有十年金融软件开发经验的 Mikhail Vorontsov,文章主要概览了所有标准 Java 集合类型.文章系国内 ITOM 管理平台 OneAPM 编译呈现,以下为正文: 本 ...
- JavaCollection Java 集合框架
Spring Injecting Collection https://www.tutorialspoint.com/spring/spring_injecting_collection.htm No ...
- Java-Runoob-高级课程:Java 集合框架
ylbtech-Java-Runoob-高级课程:Java 集合框架 1.返回顶部 1. Java 集合框架 早在 Java 2 中之前,Java 就提供了特设类.比如:Dictionary, Vec ...
- 一起学 Java集合框架、数据结构、泛型
一.Java 集合框架 集合框架是一个用来代表和操纵集合的统一架构.所有的集合框架都包含如下内容: 接口:是代表集合的抽象数据类型.接口允许集合独立操纵其代表的细节.在面向对象的语言,接口通常形成一个 ...
- JAVA 集合JGL
集合 Java提供了四种类型的“集合类”:Vector(矢量).BitSet(位集).Stack(堆栈)以及Hashtable(散列表).与拥有集合功能的其他语言相比,尽管这儿的数量显得相当少,但仍然 ...
随机推荐
- MapReduce 使用案例
MapReduce 使用案例 MapReduce在面试过程中出现的频率还是挺高的,尤其是数据挖掘等岗位.通常面试官会出一个大数据题目,需要被试者根据题目设计基于MapReduce的算法来解答.我在一个 ...
- sqlserver释放内存
create procedure sp_clearmemasbegin dbcc freeproccache dbcc freesessioncache dbcc freesystemcache('a ...
- C#中var、int、object性能比较(已修正)
var关键字是.net3.5推出的关键字,主要是让编译器自动推断并判断变量类型,类似javascript中的var. 在使用一些性能优化软件时,在代码优化时,我发现不管定义什么类型的变量,变量的类型都 ...
- arp_ignore和arp_announce内核参数
arp_announce : INTEGER 对网络接口上本地IP地址发出的ARP报文作出相应级别的限制. 0:本机所有IP地址都向任何一个接口通告ARP报文. 1:尽量仅向该网卡回应与该网段匹配的A ...
- CentOS7.3系统启动故障修复
CentOS7.3系统启动故障修复 破解CentOS7的root口令方法一 启动时任意键暂停启动菜单,选择启动内核菜单项 按 e 键进入编辑模式 将光标移动 linux16 开始的行,添加内核参数rd ...
- GDKOI 游记
Day 0 坐和谐号去广州 非常奇怪的一点是,每次坐车去广州人都很少,但是坐车回来人都贼多...... 到酒店住下,出去吃完晚饭,lmy开始奶:明天考数据结构啊! zkw:为什么不考AC自动机和插头D ...
- 3973: seq
3973: seq 题目描述 小y 的男朋友送给小y 一个数列{ai}{ai},并且刁难小y 要她维护这个序列. 具体而言,小y 的男朋友要求小y 完成两个操作: 1. 修改数列中的一个数 2. 设p ...
- JavaScript 笔记(3) -- JSON
JavaScript JSON (JavaScript Object Notation): 是一种轻量级的数据交换格式 JSON 是用于存储和传输数据的格式 JSON 通常用于服务端向网页传递数据 J ...
- libc++abi.dylib`__cxa_throw: 使用[AVAudioPlayer play]会产生__cxa_throw异常
libc++abi.dylib`__cxa_throw: 使用[AVAudioPlayer play]会产生__cxa_throw异常 开发中遇到一个奇怪的异常.我调用AVAudioPlayer pl ...
- Intellij热部署插件JRebel
Intellij热部署插件JRebel 安装JRebel 激活JRebel 相关设置 Intellij热部署插件JRebel 项目需求,一直用eclipse的我,也要改用IDEA了,一开始,很不习惯. ...