for循环嵌套遍历

**

for循环嵌套遍历list集合中所有内容

**

第一种方式

package com.nnf.controller;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;

import com.nnf.model.TGoodsCategory;
import com.nnf.service.TGoodsCategoryService;

@Controller
public class InitController {
	@Autowired
	private TGoodsCategoryService tcs;

	@RequestMapping("init")
	public String init(HttpServletRequest request,
			HttpServletResponse response, HttpSession session) {
		
		//商品一级分类
		System.out.println("一级划分:");
		List<TGoodsCategory> firstList = tcs.selectByGoodsCategoryParentId(0);  //一级分类    树状结构   0-->服装 食品  电子厂品 eg
		List<TGoodsCategory> first =new ArrayList<TGoodsCategory>();
		List<TGoodsCategory> second =new ArrayList<TGoodsCategory>();
		List<TGoodsCategory> third =new ArrayList<TGoodsCategory>();
		first.addAll(firstList);  //将一级列表添加到新的列表中
		for(int m=0;m<firstList.size();m++){
			int p = firstList.get(m).getGoodsCategoryId();
			System.out.println(firstList.get(m).getGoodsCategoryName());
			//商品二级分类
			System.out.println("----二级划分:");
			List<TGoodsCategory> secondList = tcs.selectByGoodsCategoryParentId(p); //二级分类  服装-->男装、女装、内衣 eg
			second.addAll(m, secondList);
			for(int n=0;n<secondList.size();n++){
				int q = secondList.get(n).getGoodsCategoryId();
				System.out.println("----"+secondList.get(n).getGoodsCategoryName());
				//商品三级分类
				System.out.println("--------三级划分:");
				List<TGoodsCategory> thirdList =  tcs.selectByGoodsCategoryParentId(q); //三级分类  男装--> T恤 上衣
				third.addAll(n, thirdList);
				for(int z=0;z<thirdList.size();z++){
					int y = thirdList.get(z).getGoodsCategoryId();
					System.out.println("--------"+thirdList.get(z).getGoodsCategoryName());
				}
			}
		}
		return "list";
	}
}

测试结果:
在这里插入图片描述

第二种方式

我这里一级分类是已经固定的,接下来根据一级列表查询数据库获得二级分类列表集合,这个时候想要进行三级分类列表查找就必须进行循环遍历,我新建一个实体类,二级分类具体的ID,名称,他的子类集合即三级分类列表集合便是这个实体类的属性。最后再根据我后面的方法循环遍历所有内容。

package com.nnf.controller;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;

import com.nnf.model.SecondTGoodsCategory;
import com.nnf.model.TGoodsCategory;
import com.nnf.service.TGoodsCategoryService;

@Controller
public class InitController_2 {
	@Autowired
	private TGoodsCategoryService tcs;

	@RequestMapping("init2")
	public String init(HttpServletRequest request,
			HttpServletResponse response, HttpSession session) {

	
		// 商品一级分类
		System.out.println("一级划分:");
		List<TGoodsCategory> firstList = tcs.selectByGoodsCategoryParentId(0);
		for(int i=0;i<firstList.size();i++){
			System.out.println(firstList.get(i).getGoodsCategoryName());
		}
		// 商品二级分类
		System.out.println("    二级划分:");
		List<TGoodsCategory> clothList = tcs.selectByGoodsCategoryParentId(1);     //服装列表
		for(int i=0;i<clothList.size();i++){
			System.out.println(clothList.get(i).getGoodsCategoryName());
		}
		
		List<TGoodsCategory> foodList = tcs.selectByGoodsCategoryParentId(2);      //食物列表
		List<TGoodsCategory> eleProductsList = tcs.selectByGoodsCategoryParentId(3);  //电子产品列表
		List<TGoodsCategory> electricityList = tcs.selectByGoodsCategoryParentId(4);  //电器
		List<TGoodsCategory> sportList = tcs.selectByGoodsCategoryParentId(5);        //运动列表
		// 商品三级分类
		System.out.println("        三级划分:");
//		List<TGoodsCategory> clothList = tcs.selectByGoodsCategoryParentId(1);     //服装列表
		List<TGoodsCategory> clothThirdAllList = new ArrayList<TGoodsCategory>();
		List<SecondTGoodsCategory> ss = new ArrayList<SecondTGoodsCategory>(); 
		for (int z = 0; z < clothList.size(); z++) {
			int goodsCategoryParentId = clothList.get(z).getGoodsCategoryId();  //二级分类的各个ID即三级分类列表的父类ID
			String cName = clothList.get(z).getGoodsCategoryName();
			List<TGoodsCategory> clothThirdList = tcs.selectByGoodsCategoryParentId(goodsCategoryParentId);//单条三级列表
			
			
			SecondTGoodsCategory s = new SecondTGoodsCategory();    //一个实体类,实体类中的属性分别为 父类ID 父类名称   所包含子类列表
			s.setParentId(goodsCategoryParentId);
			s.setcName(cName);
			s.setList(clothThirdList);
			ss.add(s); 
		}
		
		for(int i=0;i<ss.size();i++){
			System.out.println(ss.get(i).getParentId());
			System.out.println(ss.get(i).getcName()); 
			for(int j=0;j<ss.get(i).getList().size();j++){
				System.out.println( ss.get(i).getList().get(j).getGoodsCategoryName()                       );
			}
		}
		session.setAttribute("ss", ss);
		return "list";
	}

}

测试结果:
在这里插入图片描述新建的实体类以及jsp页面如何调用:
在这里插入图片描述
jsp页面显示结果,这里设置循环次数为5.可自行更改

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值