package dk.daoas.daoadresseservice.util; import java.util.TreeMap; public class NearestShortTreeMap { public static short getNearestKey(short search, TreeMap map) { Short ceilKey = map.ceilingKey(search); Short lowerKey = map.lowerKey(search); if (ceilKey == null) { return lowerKey; } if (lowerKey == null) { return ceilKey; } int ceilDiff = Math.abs( ceilKey - search ); int lowerDiff = Math.abs( lowerKey - search ); if (ceilDiff < lowerDiff) { return ceilKey; } else { return lowerKey; } } }