Tengo una ArrayList
de las cadenas mediante el cual en iteración, for(int i =0; i < arrayList.size(); i++)
. Cada cadena se toma de un archivo .csv, por lo que están delimitadas por comas. Una de las columnas tiene una marca de tiempo Unix, por lo que una cadena de datos se parece a esto (censuré los valores irrelevantes):
1442759243, value, value, value
así que, a medida que repito, extraigo la marca de tiempo de Unix para encontrar el día específico,
java.util.Date time = new java.util.Date((long) timeStamp * 1000);
// gives a result of Tue Sep 15 22:38:04 SGT 2015
String date = String.valueOf(time.getDate());;
// gives the result of "15"
A medida que avanza la iteración (la lista ya está ordenada por tiempo, por lo que el número, por ejemplo, 15, aumenta lentamente a medida que avanza la lista), llegará un punto en el que el siguiente String date
es un valor diferente del anterior. Ahora, en cada iteración de cadena, he configurado un contador que se incrementa. Cuando cambia la fecha, lo que quiero es que el contador se reinicie y comience a contar de nuevo. Mi pregunta es, ¿cómo "divido" la lista de arrays para poder restablecer el contador para comenzar a contar de nuevo?
Simplemente mantenga la fecha anterior y compare la fecha actual con la anterior en cada iteración:
int counter = 0;
String prevDate = "";
for (int i = 0; arrayList.size(); i++) {
long timestamp = Long.parseLong(arrayList.get(i));
Date time = new Date(timeStamp * 1000L);
String date = String.valueOf(time.getDate());
if (date.equals(prevDate)) {
++counter;
} else {
counter = 1;
prevDate = date;
}
// Do something useful with the counter
}
Este artículo se recopila de Internet, indique la fuente cuando se vuelva a imprimir.
En caso de infracción, por favor [email protected] Eliminar
Déjame decir algunas palabras