J2ME:rms的排序

本文介绍了一个使用Java ME实现的记录存储应用案例。该案例通过创建一个实现了RecordComparator接口的类compareRecord,演示了如何对存储在RecordStore中的记录进行排序和比较。文中详细展示了如何打开记录存储、添加记录以及通过实现RecordComparator接口的方法来定义记录间的比较规则。

 import javax.microedition.midlet.MIDlet;
import javax.microedition.midlet.MIDletStateChangeException;
import javax.microedition.rms.RecordComparator;
import javax.microedition.rms.RecordEnumeration;
import javax.microedition.rms.RecordStore;
import javax.microedition.rms.RecordStoreException;
import javax.microedition.rms.RecordStoreFullException;
import javax.microedition.rms.RecordStoreNotFoundException;


public class compareRecord extends MIDlet implements RecordComparator{
     RecordStore rs=null;
 public compareRecord() {
  // TODO Auto-generated constructor stub
 }

 protected void destroyApp(boolean arg0) throws MIDletStateChangeException {
  // TODO Auto-generated method stub

 }

 protected void pauseApp() {
  // TODO Auto-generated method stub

 }

 protected void startApp() throws MIDletStateChangeException {
  // TODO Auto-generated method stub
  try {
   rs=RecordStore.openRecordStore("rs", true);
   rs.addRecord("443".getBytes(), 0, "443".getBytes().length);
   rs.addRecord("34".getBytes(), 0, "34".getBytes().length);
   rs.addRecord("344".getBytes(), 0, "344".getBytes().length);
   rs.addRecord("23".getBytes(), 0, "23".getBytes().length);
   rs.addRecord("354".getBytes(), 0, "354".getBytes().length);
   
   
   //方法一,枚举遍历
   RecordEnumeration re= rs.enumerateRecords(null, this, false);  //能发现失效的ID并自动跳过
   while(re.hasNextElement())
   {
    System.out.println(new String(re.nextRecord()));
   }
   rs.closeRecordStore();
  } catch (RecordStoreFullException e) {
   // TODO Auto-generated catch block
   e.printStackTrace();
  } catch (RecordStoreNotFoundException e) {
   // TODO Auto-generated catch block
   e.printStackTrace();
  } catch (RecordStoreException e) {
   // TODO Auto-generated catch block
   e.printStackTrace();
  }
 }

 public int compare(byte[] arg0, byte[] arg1) {
  // TODO Auto-generated method stub
  int num1=Integer.parseInt(new String(arg0));
  int num2=Integer.parseInt(new String(arg1));
  if(num1<num2)
   return RecordComparator.FOLLOWS;     //arg0放到arg1的后面
  else if(num2<num1)
            return RecordComparator.PRECEDES;    //arg0放到arg1的前面
  return RecordComparator.EQUIVALENT;      //arg0和arg1无分先后
 }

}

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值