礼拜一log~java Map & 层级筛选代码

java Map基本用法

//1.声明一个Map :
Map map = new HashMap();
//2 .向map中放值 ,注意: map是key-value的形式存放的,如:
map.put("sa","dd");
//3 .从map中取值 :
String str = map.get("sa").toString,
//结果是: str = "dd'
//4 .遍历一个map,从中取得key和value :
Map m= new HashMap();
for(Object obj : map.keySet()){
    Object value = map.get(obj );
}

层级筛选 代码
所谓层级筛选,就是比如说:京东页面顶端的那个过滤商品的横条条们~勾选的要求越多,能筛选出来的合格商品就越少。
本段代码是按照4种条件筛选的。

@RequestMapping(value = "indexFilter-{www}${urlSuffix}")
    public String indexFilter(@RequestParam String filterInfo, @PathVariable String www, HttpServletRequest request, HttpServletResponse response, ModelMap model)
    {

        Site site = CmsUtils.getSiteWWW(www);
        model.addAttribute("site", site);

        // 获得产品列表(完整)
        Page<ExhibitionCom> page = getPage(request,response);
        //int countItems = (int)page.getCount();
        // 新建商品列表
        List<ExhibitionCom> list = new ArrayList<ExhibitionCom>();
        List<ExhibitionCom> tempListExCom = page.getList();
        // 处理字符串
        // index:1,3,5... name:0,2,4...
        String[] filterInfos = filterInfo.split("xxxxx");
        int filterInfosNum = filterInfos.length/2;
        // 建立数据结构
        Map<String,List<String>> nameMap = new HashMap<String,List<String>>();
        for(int l=0;l<4;l++){
            List<String> nameList = new ArrayList<String>();
            nameMap.put(l+"", nameList);
        }
        for(int i=0;i<filterInfosNum;i++){
            String index = filterInfos[2*i+1];
            //int indexNum = Integer.parseInt(index);
            String name = filterInfos[2*i];
            nameMap.get(index).add(name);
        }
        // 为列表添加项目 层级筛选
        list = filter(request,response,tempListExCom,nameMap.get("0"),0);
        list = filter(request,response,list,nameMap.get("1"),1);
        list = filter(request,response,list,nameMap.get("2"),2);
        list = filter(request,response,list,nameMap.get("3"),3);

        model.addAttribute("list", list);
        // 页码页面
        // 一页pageItemsNum个数据
        double pageSumNum = (double)list.size()/(double)(pageItemsNum);
        pageSumNum = Math.ceil(pageSumNum);
        // 页码编号123...
        model.addAttribute("pageNum", 1);
        // 当前页码
        int pageNow = 1;
        model.addAttribute("pageNow", pageNow);
        return "hhxypt/front/themes/exhibition/ajaxGetExhibitionCom";
    }

    public List<ExhibitionCom> filter(HttpServletRequest request, HttpServletResponse response,List<ExhibitionCom> list,List<String> name,int index){
        // index 0:农展会 1:销售厂家 2:经营模式 3:售卖方式
        int nameNum = name.size();
        if (nameNum==0){
            // 空列表,二话不说马上返回!
            return list;
        }
        int listLength = list.size();
        String tmpString = "";
        ExhibitionCom tmpExhCom = new ExhibitionCom();
        List<ExhibitionCom> listReturn = new ArrayList<ExhibitionCom>();
        switch(index){
        case 0:
            ExhibitionBasic exb = new ExhibitionBasic();
            for(int i=0;i<listLength;i++){
                tmpExhCom = list.get(i);
                exb = ExhibitionUtils.getExhibitionBasic(tmpExhCom.getExhibitionBasic().getId());
                for(int j=0;j<nameNum;j++){
                    if(exb.getName().equals(name.get(j))){
                        listReturn.add(tmpExhCom);
                    }
                }
            }
            break;
        case 1:
            for(int j=0;j<listLength;j++){
                tmpExhCom = list.get(j);
                for(int m=0;m<nameNum;m++){
                    if(tmpExhCom.getRetailer().equals(name.get(m))){// 供应商
                        listReturn.add(tmpExhCom);
                    }
                }
            }
            break;
        case 2:
            for(int j=0;j<listLength;j++){
                tmpExhCom = list.get(j);
                tmpString = tmpExhCom.getMode();
                tmpString = DictUtils.getDictLabel(tmpString,"managing_Mode","");
                tmpString = tmpString.replaceAll("\\+", " ");
                for(int m=0;m<nameNum;m++){
                    if(tmpString.equals(name.get(m))){
                        listReturn.add(tmpExhCom);
                    }
                }
            }
            break;
        case 3:
            for(int m=0;m<listLength;m++){
                tmpExhCom = list.get(m);
                tmpString = tmpExhCom.getMarketingMode();
                tmpString = DictUtils.getDictLabel(tmpString,"marketing_Mode","");
                //tmpString = tmpString.replaceAll("\\+", " ");
                for(int k=0;k<nameNum;k++){
                    if(tmpString.equals(name.get(k))){
                        listReturn.add(tmpExhCom);
                    }
                }
            }
            break;
        default:
            System.err.println("indexWrongNum indexFilter");
            break;
        }
        return listReturn;
    }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值