RecordStore中索引探讨

 索引,顾名思意就是在RecordStore中数据量比较大,搜索具体某条数据需要话费很长时间而产生的。以前没有接触过,在开发过程中,习惯性的将所有数据写入一个张表即一个RecordStore中,需要查找数据也是直接操作该表。
在j2me中可以模拟索引机制。一个Recordstore看作一个表,表中每条记录只有一列,同时Recordstore为每条记录自动分配一个独一无二的id.该id可以在RecordStore中的增加记录addstore方法的返回值中得到。明白了这点知识,就可以为原来的RecordStore建立一个索引Recordstore,该索引Recordstore包含原来recordstore添加数据产生的id,和用户自定义的一些关键字。关键字中所代表的详细信息在原来的RecordStore中存储,该过程用与该关键字对应的id即可从原来的recordstore取得详细信息。
具体代码:

byte[] data = account.serialize();
int id = rs.addRecord(data, 0, data.length);//rs为原来的数据库
Index index = new Index(account.getUserName(), id);//索引数据中只包含两个字段
rs_index.addRecord(index_data, 0, index_data.length);//rs_index为索引数据库

在学习手机通讯录中还有个知识点:
充分利用itemstatechange事件可以实现web编程中Ajax的实时与后台进行数据交换的效果

在界面方面有这样的一个特效,当选中某项,程序自动增加该项的子项
ChoiceGroup choice = new ChoiceGroup(null, ChoiceGroup.MULTIPLE);

//实现itemStateChange(Item item)接口
    public void itemStateChanged(Item item)
    {
        if (item == choice)
        {
            if (choice.isSelected(0))//当ChoiceGroup中的第一项被选中,则在其目录下,添加子项
            {
                phoneIndex = this.append(phoneField);
                emailIndex = this.append(emailField);
            }
            else
            {
                this.delete(emailIndex);
                this.delete(phoneIndex);
            }
        }       
    }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值