发表文章

[最新] List集合中元素按照固定数量进行分组

jovizhao 25天前 62

最近做项目,被要求将全国所有省份在页面中展示出来,但是要求

1、字少的三个省份占一行

2、字多的两个省份占一行

想来想去只能想到查询出所有省份,然后分组返回数据,上代码

public Map<String,Object> campus_list_provence(HttpServletRequest request,HttpServletResponse response)throws Exception{
		Map<String,Object> map=new HashMap<String,Object>();
		String sql="查询所有省份的名称,可以先在数据库中将全国所有省份建一个表";
		List<String> list=bd.getSQLList(sql);
        //创建第一个list1,里面存入省份名称少于4个字的
		List<String> list1=new ArrayList<String>();
        //创建第二个list2,里面存入省份名称大于4个字的
		List<String> list2=new ArrayList<String>();
		if(list!=null&&list.size()>0){
			for (String string : list) {
				if(string.length()>4){
					list2.add(string);
				}else{
					list1.add(string);
				}
			}
		}
		int keyToken = 0;
		int toIndex=3;
		List<Object> listSortMap = new ArrayList<Object>();
		for(int i = 0;i<list1.size();i+=3){
            if(i+3>list1.size()){        //作用为toIndex最后没有3条数据则剩余几条newList中就装几条
                toIndex=list1.size()-i;
            }
        List newList = list1.subList(i,i+toIndex);
        keyToken++;
        listSortMap.add(newList);
        }
		int keyToken2 = 0;
		List<Object> listSortMap2 = new ArrayList<Object>();
		for(int i = 0;i<list2.size();i+=2){
			if(i+2>list2.size()){        //作用为toIndex最后没有2条数据则剩余几条newList中就装几条
				toIndex=list2.size()-i;
			}
			List newList2 = list2.subList(i,i+toIndex);
			keyToken2++;
			listSortMap2.add(newList2);
		}
		map.put("prov1", listSortMap);
		map.put("prov2", listSortMap2);
		return map;
	}

页面接收

function campus_list_ByProvence(req_data){
	$.ajax({ 
        type : "POST",  
        url : "刚才方法的url", 
        traditional: true,
        data : req_data,
        timeout : 20000, 
        cache : false,
        beforeSend : function(XMLHttpRequest) {},  
        success : function(data) {
        	/* 生成html */
        	$('#campus_list_provence').html(campus_list_ByProvenceHtml1(data.prov1,data.prov2));     	
        },  
        error : function() { alert("ajax失败!");}  
	});
}
function campus_list_ByProvenceHtml1(prov,prov2){
	var html = "";
	for(var i = 0 , j = prov.length ; i < j ; i++){
		html+='<li class="li1" >';
		if(prov[i][0]!=undefined&&prov[i][0]!=null&&prov[i][0]!=""){
			var provstr0="'"+prov[i][0]+"'";
			html+='<a href="#2" onclick="GoToUrlItem('+provstr0+');">'+prov[i][0]+'</a>';
		}else{
			html+='';
		}
		if(prov[i][1]!=undefined&&prov[i][1]!=null&&prov[i][1]!=""){
			var provstr1="'"+prov[i][1]+"'";
			html+='<a href="#2" onclick="GoToUrlItem('+provstr1+');">'+prov[i][1]+'</a>';
		}else{
			html+='';
		}
		if(prov[i][2]!=undefined&&prov[i][2]!=null&&prov[i][2]!=""){
			var provstr2="'"+prov[i][2]+"'";
			html+='<a href="#2" onclick="GoToUrlItem('+provstr2+');">'+prov[i][2]+'</a>';
		}else{
			html+='';
		}
		html+='</li>';
	}
	for(var i = 0 , j = prov2.length ; i < j ; i++){
		html+='<li class="li2" >';
		if(prov2[i][0]!=undefined&&prov2[i][0]!=null&&prov2[i][0]!=""){
			var pro2vstr0="'"+prov2[i][0]+"'";
			html+='<a href="#2" onclick="GoToUrlItem('+pro2vstr0+');">'+prov2[i][0]+'</a>';
		}else{
			html+='';
		}
		if(prov2[i][1]!=undefined&&prov2[i][1]!=null&&prov2[i][1]!=""){
			var prov2str1="'"+prov2[i][1]+"'";
			html+='<a href="#2" onclick="GoToUrlItem('+prov2str1+');">'+prov2[i][1]+'</a>';
		}else{
			html+='';
		}
		html+='</li>';
	}
	return html ;
}

感觉这样写好麻烦,不过最后还好弄出来了,如果有更好的方法请告诉我一下

页面展示:

相关推荐
最新评论 (0)
返回
发表文章
jovizhao
文章数
25
评论数
0
注册排名
768571