DFA算法去重效果
2016-07-07 15:50
411 查看
private Map transDFA(Map map,List<String> cateIds){
String key="";//使用类目ID为key
Map currentMap=null;//字符串转化为数组时迭代所用
Map<String,String> newMap=null;//当某个ID没有在map中使用
for(String cateId:cateIds){
currentMap=map;
String[] ids=cateId.split(",");
for(int i=0,len=ids.length;i<len;i++){
key=ids[i];
Object idMap=currentMap.get(key);//判断这个ID是否已经在Map中
if(null!=idMap){//判断当前ID的Map是否为空,不为null的时候把currentMap的指针指向当前的idMap
currentMap=(Map)idMap;
}else{
newMap=new HashMap<String,String>();
newMap.put("isEnd","0");//0:表示非最后一级;1:表示最后一级
currentMap.put(key, newMap);//把newMap放入currentMap中
currentMap=newMap;//把当前Map currentMap指向最新的Map
}
if(i==ids.length-1){
currentMap.put("isEnd", "1");//这个类目ID为最后一级的时候
}
}
}
return map;
}
String key="";//使用类目ID为key
Map currentMap=null;//字符串转化为数组时迭代所用
Map<String,String> newMap=null;//当某个ID没有在map中使用
for(String cateId:cateIds){
currentMap=map;
String[] ids=cateId.split(",");
for(int i=0,len=ids.length;i<len;i++){
key=ids[i];
Object idMap=currentMap.get(key);//判断这个ID是否已经在Map中
if(null!=idMap){//判断当前ID的Map是否为空,不为null的时候把currentMap的指针指向当前的idMap
currentMap=(Map)idMap;
}else{
newMap=new HashMap<String,String>();
newMap.put("isEnd","0");//0:表示非最后一级;1:表示最后一级
currentMap.put(key, newMap);//把newMap放入currentMap中
currentMap=newMap;//把当前Map currentMap指向最新的Map
}
if(i==ids.length-1){
currentMap.put("isEnd", "1");//这个类目ID为最后一级的时候
}
}
}
return map;
}
相关文章推荐
- java对世界各个时区(TimeZone)的通用转换处理方法(转载)
- java-注解annotation
- java-模拟tomcat服务器
- java-用HttpURLConnection发送Http请求.
- java-WEB中的监听器Lisener
- Android IPC进程间通讯机制
- Android Native 绘图方法
- Android java 与 javascript互访(相互调用)的方法例子
- 介绍一款信息管理系统的开源框架---jeecg
- 聚类算法之kmeans算法java版本
- java实现 PageRank算法
- PropertyChangeListener简单理解
- c++11 + SDL2 + ffmpeg +OpenAL + java = Android播放器
- 插入排序
- 冒泡排序
- 堆排序
- 快速排序
- 二叉查找树