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;
}