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 как мне это сделать? И если мне нужно следить за разницей во времени между прибытием каждого последующего сообщения , используя точный_время , как мне это сделать?