package lastkilometer.BerkeleyDB; import java.io.FileNotFoundException; import java.util.ArrayList; import java.util.List; import java.util.Map; import java.util.Set; import java.util.TreeMap; import com.sleepycat.je.DatabaseException; import java.util.Map.Entry; public class FindNearstSite { public Map<String, List<String>> find() throws DatabaseException, FileNotFoundException{ BerkeleyDB read_Site_Site = new BerkeleyDB("distance/site_site_distance");//格式:Map<Site_id,Map<Site_id,distance>> Map<String, List<String>> nearestSite=new TreeMap<>(); Set<Entry<String, Object>> set=read_Site_Site.iteration(); for(Entry<String, Object> entry:set){ String Site_id_key=entry.getKey(); @SuppressWarnings("unchecked") Map<String, Double> value=(Map<String, Double>) entry.getValue(); int n=0; List<String> Site_id_value=new ArrayList<>(); for(Entry<String, Double> e:value.entrySet()){ if(n<10){//十个最近网点---50-4 80-8 Site_id_value.add(e.getKey()); }else{ break; } n++; } nearestSite.put(Site_id_key, Site_id_value); } return nearestSite; } }