BitSet保存用户属性小例子
来源:互联网 发布:linux文件权限第三段 编辑:程序博客网 时间:2024/06/12 01:14
import com.google.common.collect.Lists;import org.apache.commons.lang.builder.ToStringBuilder;import java.util.BitSet;import java.util.HashMap;import java.util.List;import java.util.Map;public class BitSetDemo { static int ageStartIndex = 0; static int ageEndIndex = 99; static int sexIndex = 100; static int gradeStartIndex = 101; static int gradeEndIndex = 109; static BitSet sexToCompare = new BitSet(1); static Map<Integer, BitSet> personAttrsMap = new HashMap<Integer, BitSet>(); public static void main(String[] args) { List<Person> persons = init(); display(persons); for(Person person: persons){ BitSet attr = new BitSet(128); setSex(attr, person.getSex()); setGrade(attr, person.getGrade()); personAttrsMap.put(person.getId(), setAge(attr, person.getAge())); int grade = getGrade(attr); int age = getAge(attr); String sex = getSex(attr); System.out.println("ID = " + person.getId() + ",Grade = " + person.getGrade()+"|"+grade+",Age = "+person.getAge()+"|"+age+",Sex = "+person.getSex()+"|"+sex); } } public static BitSet setAge(BitSet bitSet, int age){ bitSet.set(age - 1); System.out.println(bitSet); return bitSet; } public static String getSex(BitSet bitSet){ BitSet sexBitSet = bitSet.get(sexIndex, sexIndex + 1); sexBitSet.and(sexToCompare); if(sexBitSet.cardinality() > 0){ return "male"; } return "female"; } public static BitSet setGrade(BitSet bitSet, int grade){ bitSet.set(grade + gradeStartIndex - 1); System.out.println(bitSet); return bitSet; } public static BitSet setSex(BitSet bitSet, int sex){ bitSet.set(sexIndex, sex == 1); System.out.println(bitSet); return bitSet; } public static int getGrade(BitSet bitSet){ BitSet gradeBitSet = bitSet.get(gradeStartIndex,gradeEndIndex + 1); if(gradeBitSet.cardinality() > 0){ return gradeBitSet.nextSetBit(0) + 1; } return -1; } public static int getAge(BitSet bitSet){ BitSet ageBitSet = bitSet.get(ageStartIndex,ageEndIndex + 1); if(ageBitSet.cardinality() > 0){ return ageBitSet.nextSetBit(0) + 1; } return -1; } public static List<Person> init(){ sexToCompare.set(0); List<Person> persons = Lists.newArrayList(); Person p1 = new Person(1,5,1,4); Person p2 = new Person(2,6,0,5); Person p3 = new Person(3,7,1,6); Person p4 = new Person(4,100,0,9); persons.add(p1); persons.add(p2); persons.add(p3); persons.add(p4); return persons; } public static void display(List<Person> persons){ for(Person p:persons){ System.out.println(p); } }}class Person{ private Integer id; private int age; // from 1 to 100 private int sex; // 1-male 0-female private int grade; // from 1 to 9 public Person(Integer id, int age, int sex, int grade){ this.id = id; this.age = age; this.grade = grade; this.sex = sex; } public Integer getId() { return id; } public void setId(Integer id) { this.id = id; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } public int getSex() { return sex; } public void setSex(int sex) { this.sex = sex; } public int getGrade() { return grade; } public void setGrade(int grade) { this.grade = grade; } @Override public String toString() { return ToStringBuilder.reflectionToString(this); }}
阅读全文
0 0
- BitSet保存用户属性小例子
- 用户注册小例子
- 用户WEB登录小例子
- struts2小例子 登录用户
- 属性动画用法小例子
- 属性读写操作小例子
- sku属性组合小例子
- Java 小例子:下载并保存网络小说
- 一个保存视图状态的小例子
- 拍照并保存文件的小例子
- bitset小练习
- SQLServer 用户自定义函数小例子
- jquery-easyui编写用户管理小例子
- jquery-easyui编写用户管理小例子
- vector和bitset使用例子
- Cookie:类似与保存用户浏览记录的例子
- OPENFILENAME结构体和保存图片的一个小例子
- java小文本简单保存和装载的例子
- caffe convnet quick guide
- RocketMQ原理解析-producer 2.如何发送消息
- C# 不同命名空间的相同类,反射赋值
- Application共享数据
- 包含复杂类型的对象转换json
- BitSet保存用户属性小例子
- android studio快捷键
- 题目1002:Grading
- C++实现学生信息及成绩处理系统(面向对象的程序设计思想)
- Zipkin
- Android&Java内存泄露和内存溢出的区别及解析
- 调通sina33m下的GC0308(分色排版)V1.0
- App升级后自启动方案
- echarts中的地图实战记录(一)