1,首先描述一下应用场景

比如,我们要对菜单做权限,控制不同角色菜单显示与不显示,角色为经理时,我们需要菜单id为 4,7,13,24的菜单显示,别的菜单不显示。

就是说,这时候我们要把4,7,13,24这四个菜单的状态设为1,其他菜单不显示,即状态为0

我们想要把把这四个状态为1的菜单组合信息封存到一个String类型的字段里,怎么办呢,这就要用到我们的神器BigInteger

BigInteger bigInteger=new BigInteger("0");
BigInteger setBit = bigInteger.setBit(4);
setBit=setBit.setBit(7);
setBit=setBit.setBit(13);
setBit=setBit.setBit(24);
 System.out.println(setBit);

打印:16785552

这是封装,下面取值

System.out.println(setBit.testBit(4));
System.out.println(setBit.testBit(7));
System.out.println(setBit.testBit(13));
System.out.println(setBit.testBit(24));

结果:

true
true
true
true

如果是别的

System.out.println(setBit.testBit(23));

false

一个封存Id与状态对应键值的神器,BigInteger的setBit和testBit用法实例的更多相关文章

  1. 给MySQL中某表增加一个新字段,设为主键值为自动增长。

    alter table test_tb  add ID int(10) primary key AUTO_INCREMENT; 设定完成后,原有记录的该字段会增加并自动设上值.以后的值会在已有记录的最 ...

  2. 使用KVO键值监听

    本文章从五个方面介绍KVO(Key-Value-Observer)键值观察者: (1)功能介绍 (2)使用步骤 (3)应用场景 (4)原理理解 (5)相关的面试题 一 功能介绍 KVO是OC语言对「观 ...

  3. docker——Etcd高可用键值对数据库

    一.简介 Etcd按照官方介绍: Etcd is a distributed, consistent key-value store for shared configuration and serv ...

  4. CockroachDB学习笔记——[译]CockroachDB中的SQL:映射表中数据到键值存储

    CockroachDB学习笔记--[译]CockroachDB中的SQL:映射表中数据到键值存储 原文标题:SQL in CockroachDB: Mapping Table Data to Key- ...

  5. Android4.2增加新键值

    这里添加新的键值,不是毫无凭据凭空创造的一个键值, 而是根据kernel中检测到的按键值,然后转化为android所需要的数值: 以添加一个linux键值为217,把它映射为android的键值Bro ...

  6. js 如何让两个等长的数组产生键值对关系

    问题的准确描述:js 将两个长度一样的一维数组 合成一个一维数组,A为键值,B为key值 js 将两个长度一样的一维数组 合成一个一维数组,A为键值,B为key值 如 var arr1=['a','b ...

  7. python 对redis 键值对的操作

    我们可以将Redis中的Hashes类型看成具有String Key和String Value的键值对容器.类似python中的dict,javascript的jaon,java 的map,每一个Ha ...

  8. Entry键值对对象和Map集合遍历键值对方式

    我们已经知道,Map中存放的是两种对象,一种称为key(键),一种称为value(值),它们在在IMap 中是一一对应关系, 这一对对象又称做Map 中的一个Entry(项).Entry将键值对的对应 ...

  9. PhoneBean实体类的封装和map输出键值对的设置

    之前我们写好了bean类型.现在我们再看看这个需求中,map和reduce各自的流程. Map阶段: 字段切分以后保留如下字段:以第一行为例,就保留13726230503112  2481 24681 ...

随机推荐

  1. sqlserver数据库的备份与还原——完整备份与还原

    sqlserver提供四种数据库备份方式 完整备份:备份整个数据库的所有内容包括书屋和日志 差异备份:只备份上次完整备份后更高的数据部分 事务日志备份:只备份事务日志里的内容 文件或文件组备份:只备份 ...

  2. System.ServiceProcess.TimeoutException: Time out has expired and the operation has not been completed.

    项目代码如下 ServiceController service = new ServiceController("ModbusAgent"); service.Stop(); T ...

  3. Java并发-UncaughtExceptionHandler捕获线程异常信息并重新启动线程

    Java并发-UncaughtExceptionHandler捕获线程异常信息并重新启动线程 一.捕获异常并重新启用线程 public class Testun { public static voi ...

  4. 有关JVM处理Java数组方法的思考

    在Java中,获取数组的长度和String的长度是两种不同的方法,这引起了本文作者的一番思考.本文从JVM的角度,探讨了Java数组在JVM中是什么对象,有哪些成员,以及声明方法. 作者:jarfie ...

  5. linux 管道符与通配符

    ###管道符 *命令格: 命令1 | 命令2 //命令1的正确输出作为命令2的操作对象 ll | more netstat -an | grep xxx 通配符 类似于正则表达式 ? 一个以上 [] ...

  6. java学习笔记1--基础知识

    1.java数据类型 2.类之间的几种关系

  7. 探索未知种族之osg类生物---呼吸分解之事件循环二

    VPM矩阵 1.V 表示摄像机的观察矩阵(View Matrix),它的作用是把对象从世界坐标系变换到摄像机坐标系.因此,对于世界坐标系下的坐标值 worldCoord(x0, y0, z0),如果希 ...

  8. 网页启用Gzip压缩 提高浏览速度

    启用Gzip压缩的好处 它的好处显而易见,提高网页浏览速度,无论是之前说的精简代码.压缩图片都不如启用Gzip来的实在.下图为启用Gzip后的效果. Gzip压缩效率非常高,通常可以达到70%的压缩率 ...

  9. qt 5.2.1类和模块的关系图

    QT│  ├─ActiveQt│  │  ActiveQt│  │  ActiveQtDepends│  │  ActiveQtVersion│  │  QAxAggregated│  │  QAxB ...

  10. PDF下载网

    http://www.java1234.com/a/javabook/javaweb/2018/1103/12297.html