public SpikeCollection findDuplicatedSpikes(Spike spike, long time,
			long timeBuffer, MonitoredAS as, double duplicationPercentage) {
		SpikeCollection duplicatedSpikes = new SpikeCollection();

		for (MonitoredAS pair : allUpdates.keySet()) {

			SingleASspikes asSpikes = allUpdates.get(pair);

			for (long second = time - timeBuffer; second <= time + timeBuffer; second++) {

				if ((pair.getMonitoredAS() == as.getMonitoredAS())
						&& (pair.getMonitoringRouter().equals(as
								.getMonitoringRouter())) && (second == time)) {
					// skip the given spike, as I don't want to check if spike
					// is duplicated with itself
					continue;
				}

				if (asSpikes.hasSpikeAtTime(second)) {
					if (asSpikes.getSpikeAtTime(second).isDuplicatedWith(spike,
							duplicationPercentage)) {
						duplicatedSpikes.addSpike(second,
								asSpikes.getSpikeAtTime(second), pair);
					}
				}
			}
		}

		return duplicatedSpikes;
	}