`

看到一段很有新意的java代码

阅读更多
原帖地址:http://www.cnblogs.com/fuxinci/archive/2013/06/10/3130762.html

问题:
  现在有N多授权用户(id,name...),如何判断某用户(guest)是否有权限呢?id是整型且唯一。
我想到的解决方案是将授权用户id放到一个集合中,然后调用list.contains(guest.id)方法。
今天看到一个比较特别的方式,将验证部分整理如下:



import java.math.BigInteger;
import java.util.ArrayList;
import java.util.List;
import java.util.Random;

import static java.math.BigInteger.ZERO;

/**
* Author: Leo Sun
* Blog:
http://fuxinci.com/
* Date: 6/10/13
*/
public class TestInteger {
public static void main(String[] args) {
Random random
= new Random();
List
<Integer> list = new ArrayList<Integer>();

// 使用BigInteger 作为 id 集合
BigInteger ids = BigInteger.ZERO;
for (int i = 0; i < 10; i++) {
int id = random.nextInt(10);
list.add(id);

// 将id放入BigInteger
ids = ids.or(ZERO.setBit(id));
}

// 判断id是否存在
for (Integer id : list) {
System.out.println(
"Collection.contains( "+id+" )= " + ids.testBit(id));
}
}
}


缺点:只能用于验证,无法列表授权用户id
优点:会比将所有id放到集合中,然后调用contains方法速度快吗 ?欢迎补充.

本文链接

分享到:
评论

相关推荐

    java代码-电费计费系统

    对经典电费计费系统的现代演绎,一个人...电费计费系统被认为是初学者最好的Java项目创意之一。该应用程序应具有以下功能: 准确计算账单金额。 在当地电力局和用户之间即时共享数据。 非常安全,可以消除篡改的机会。

    java程序表白代码

    程序可能还包括一些定制化的功能,例如生成一段特殊的消息或动画,根据相识的天数来展示不同的浪漫语句。这可能涉及到字符串操作和条件判断,如`if-else`语句,来实现不同的输出。Java的`String`类提供了丰富的操作...

    Java语言编写的爱心表白代码

    富有创意:通过打印星号和空格来构造出一个爱心形状,这本身就是一个很有创意的想法。这种将编程和艺术结合的方式,使得这段代码不仅实现了功能,也展现了编程的趣味性。良好的可读性:代码中的注释和空格使得代码...

    代码情书比赛作品(java).rar

    这个Java代码情书项目不仅展示了编程的实用性,还体现了创意和情感的结合。对于学习Java的开发者来说,这是一个很好的实践案例,能够锻炼他们的编程技巧,同时也能激发对编程的热爱和创新思维。通过研究和修改这段...

    520程序员前端表白代码,使用 HTML、CSS 和 JavaScript 编写一段浪漫的代码,用于表达爱意

    这段代码适用于希望以创意和浪漫的方式表达爱意的人群。无论是情侣还是恋人,他们可以通过这段代码给对方留下深刻的印象和甜蜜的回忆。 使用场景和目标: 这段代码适用于多种场景,包括但不限于情人节、纪念日、生日...

    程序员向妹子表白专用代码.zip

    除此之外,文件名暗示了这是一段专为表白而准备的代码,可能包含一个互动的网页应用。这可能是一个简单的HTML和CSS页面,加上JavaScript的交互逻辑,当妹子打开时,会播放一段动人的音乐,展示一行行深情的告白语句...

    春节烟花Java代码"龙"主题创意

    这段代码实现了一个放烟花的炫酷效果,无需额外下载任何插件,代码可直接跑着swing窗体下运行,多个小圆点随机移动,超出边界后重新生成在随机位置,形成连续的烟花效果。同时结合了"龙"主题创意项目,让烟花效果...

    Java写的打地鼠小游戏

    打地鼠小游戏是一款深受玩家喜爱的经典休闲游戏,其简单的操作方式和快速反应的挑战性使得它在各种年龄段的用户中都有很高的普及度。本篇将深入探讨如何使用Java语言来实现这样一个有趣的小游戏。 首先,Java作为一...

    Java图片幻灯片特效.rar

    定时器可以定期触发某个事件,例如每隔一段时间自动切换到下一张图片。此外,可能还会使用到事件监听器(`ActionListener`),以便在特定时刻执行特定的操作,比如切换图片。 在描述中提到的不同切换特效,可能通过...

    java实现的等值线画法

    - ** Processing**:虽然Processing主要是一个创意编程语言,但也可以在Java环境中使用,其提供了丰富的图形绘制功能,包括等值线的绘制。 5. **源代码分析**: - 由于描述中提到的源代码是作者自己编写的,可能...

    利用Java制作字符动画实例代码

    Java字符动画是一种趣味性的编程实践,它通过将图像转化为由特定字符组成的序列,来模拟动态效果。...如果你对Java编程和视觉艺术感兴趣,尝试制作字符动画无疑会是一段有趣且富有成就感的学习旅程。

    表白代码,前端代码基于javascript

    JSP(JavaServer Pages)是Java平台上的服务器端技术,它允许开发者在HTML、XML或其他类型的文档中嵌入Java代码,以生成动态网页内容。在表白代码的场景中,JSP可能会用来处理用户提交的信息,比如接收表白请求,...

    基于JAVA编写的swing随机窗口

    最后,显示一个特定的对话框,在一段时间后程序退出。 这段代码可以用于创建一些具有特殊效果的图形用户界面,例如在特定场景下展示一系列随机出现的消息,或者作为一种创意的表达方式。通过随机出现的窗口和定时...

    反编译Java程序与Java艺术特效

    2. 滚动机制:通过定时器每隔一段时间改变文本的位置,使其看起来在屏幕上移动。 3. 边界处理:当文字移动到边界时,需要重新定位到另一端,实现无缝滚动。 Java Applet是早期Java用于Web开发的一种方式,虽然现在...

    Java应用程序设计的3D文字动画

    在Java编程领域,3D文字动画的实现是一个高级且引人入胜的话题。这个主题涵盖了图形学、动画原理以及Java的特定库和技术。本项目显然旨在展示如何在Java环境中创建动态、立体的文字效果,这对于游戏开发、用户界面...

    JAVA源码JAVA基于J2ME的手机游戏开发(论文+源代码)

    2. **创新游戏设计**:尽管受到硬件限制,但仍有一些开发者利用创意和技术手段制作出颇具特色的小型游戏。 #### 总结 J2ME作为早期的移动开发平台,在当时为开发者提供了一个强大的工具集来开发各种类型的手机应用...

    北京浮生记(java se版)

    【标题】"北京浮生记(java se版)"是一款基于Java SE平台开发的简易游戏,它展示了如何使用Java编程语言来实现一个互动性的游戏程序。Java SE(标准版)是Java平台的核心,提供了丰富的类库和API,使得开发者可以构建...

    java窗口半透明

    这里定义了一个无限循环,每隔一段时间(如1秒)检查是否需要更新背景图。如果时间间隔足够长或者有显式请求,则调用`updateBackground`方法更新背景图像。 ##### 4. 组件布局与添加 最后,需要将自定义的透明背景...

    程序员表白代码之情人节快乐!

    这种代码可以是基于各种编程语言实现的,如Python、JavaScript、C++或Java,这些语言都有丰富的库和功能,能够帮助程序员实现创意。 1. **Python**: Python以其简洁明了的语法,常被用来编写表白代码。例如,使用...

    JAVA基础入门资料

    - **平台独立性**:Java代码编译成字节码后,由JVM解释执行,不受硬件平台限制,实现了跨平台运行。 - **多线程**:Java内置了对多线程的支持,使得程序能够同时处理多个任务,提高了并发处理能力。 - **动态性**:...

Global site tag (gtag.js) - Google Analytics