import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
public class Test {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
List<Double> d = new ArrayList<Double>();
d.add(11000.0);
d.add(12050.0);
d.add(13100.0);
d.add(14150.0);
d.add(15200.0);
d.add(16250.0);
d.add(17300.0);
d.add(18350.0);
long start = System.currentTimeMillis();
boolean periodAccess = isPeriodAccess(d, 1000.0, 0.7);
System.out.println(System.currentTimeMillis() - start);
System.out.println(periodAccess);
}
public static boolean isPeriodAccess(List<Double> accessMillis, double offsetGap, double periodRation) {
Collections.sort(accessMillis);
double lastInterval = -1.0;
double interval;
double num=2.0;
for(int i=2; i<accessMillis.size(); i++) {
lastInterval = accessMillis.get(i-1) - accessMillis.get(i-2);
interval = accessMillis.get(i)-accessMillis.get(i-1);
//user access's interval must large than 1 second
if(interval>1000 && Math.abs(interval - lastInterval)<offsetGap){
num++;
}
}
if(num/accessMillis.size()>periodRation){
return true;
}
return false;
}
}