public List<String> getSortedFundCodes(String type, int top, SortMethod sortMethod){
		List<String> candidates = new ArrayList<String>();
		if(mapBasicInfos == null){
			mapBasicInfos = new HashMap<String, List<String>>();
			for(String[] basicInfo : basicInfos){
				List<String> data = new ArrayList<String>();
				data.add(basicInfo[0]);
				data.add(basicInfo[1]);
				data.add(basicInfo[2]);
				data.add(basicInfo[3]);
				mapBasicInfos.put(basicInfo[0], data);
			}
		}
		for(List<String> mapBasicInfo : mapBasicInfos.values()){
			if(!type.equals("全部")){
				if(mapBasicInfo.get(3).equals(type)){
					candidates.add(mapBasicInfo.get(0));
				}
			} else{
				candidates.add(mapBasicInfo.get(0));
			}
		}
		
		candidates = sortMethod.sort(candidates);
		
		return candidates.size()>top?candidates.subList(0, top):candidates;
		
	}