for循环嵌套遍历如何实现

上一篇 / 下一篇  2019-04-26 13:48:42

  **
  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.可自行更改

TAG:

hubiao0210的个人空间 引用 删除 hubiao0210   /   2019-05-05 11:03:30
可以
 

评分:0

我来说两句

显示全部

:loveliness: :handshake :victory: :funk: :time: :kiss: :call: :hug: :lol :'( :Q :L ;P :$ :P :o :@ :D :( :)

日历

« 2019-06-13  
      1
2345678
9101112131415
16171819202122
23242526272829
30      

数据统计

  • 访问量: 7430
  • 日志数: 25
  • 建立时间: 2019-02-12
  • 更新时间: 2019-06-12

RSS订阅

Open Toolbar