древовидная карта класса как значение другой древовидной карты - PullRequest
0 голосов
/ 30 марта 2012
    Class Record{
     static long start_nanoTime=System.nanotime();
     public static void recording(Message message) {
       Calendar c1=Calendar.getInstance();
       int  year=c1.get(Calendar.YEAR);
       int  month=c1.get(Calendar.MONTH);
       int  day=c1.get(Calendar.DAY_OF_MONTH);
       int  hour=c1.get(Calendar.HOUR_OF_DAY);
       int  min=c1.get(Calendar.MINUTE);
       GregorianCalendar gc = new GregorianCalendar(year, month, day, hour, min);
       Date d=gc.getTime();
       long timestamp=(d.getTime())/60000;//precision till minute
       Map<Long,StoreMessage> map1=new TreeMap<Long,StoreMessage>();      
       long precise_time=TimeUnit.MIllISECONDS.toNanos(System.currentTimeMillis())+(System.nanoTime-start_nanotime);
      map1.put(timestamp, new StoreMessage(precise_time,message));
  }
}

Приведенный выше класс пытается сохранить объекты класса сообщений вместе со временем его создания (древовидная карта класса StoreMessage ) в древовидной карте класса Запишите как значение против ключа отметки времени с точностью до минут.

Class StoreMessage{
 public StoreMessage(long time, Message message){
 Map<Long,Message> map2=new TreeMap<Long,Message>();
 map2.put(time,message);
 }
}

Если это требуемый подход, сработает ли этот код? Кроме того, если по истечении каждой минуты (в соответствии с отметка времени ) я должен сериализовать map1 в byte [] как ObjectOutputStream как мне это сделать? И если мне нужно следить за разницей во времени между прибытием каждого последующего сообщения , используя точный_время , как мне это сделать?

...