您的位置:首页 > 编程语言 > Java开发

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;

    }
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  Java