Java 循环2个列表并将结果打印到csv
我有这个问题,在我试图循环超过2个列表(不同长度)和打印结果到csv 下面是我的代码:(我在需要帮助的地方标出了行)Java 循环2个列表并将结果打印到csv,java,spring,apache,csv,apache-commons,Java,Spring,Apache,Csv,Apache Commons,我有这个问题,在我试图循环超过2个列表(不同长度)和打印结果到csv 下面是我的代码:(我在需要帮助的地方标出了行) @RequestMapping(value=“/do.download”) 公共字符串下载(表单、模型、HttpServletRequest请求、HttpServletResponse响应)引发IOException{ PrintWriter pw=null; 试一试{ logger.debug(“+++++++++++++++++++++++++++++++++++++++++
@RequestMapping(value=“/do.download”)
公共字符串下载(表单、模型、HttpServletRequest请求、HttpServletResponse响应)引发IOException{
PrintWriter pw=null;
试一试{
logger.debug(“+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++”;
response.setContentType(“application/vnd.ms excel”);
response.setHeader(“内容处置”、“附件;文件名=“+”备份“+”.csv”);
response.setHeader(“Expires”、“0”);
setHeader(“缓存控制”,“必须重新验证,后csheck=0,预检查=0”);
响应。setHeader(“Pragma”、“public”);
pw=response.getWriter();
println(“carid、carname、carmodel、carcolor”);
car CarFromDB=新车();
List CarDetailsFromDB=Collections.emptyList();
List carColorFromDB=Collections.empltyList();
CarDetailsFromDB=Service.getcarDetails(CarFromDB);
carColorFromDB=Service.getcarColor(CarFromDB);
用于(carDetails carDetails:CarDetailsFromDB){
println(String.format(“%s,%s,%s,%s”,
cardetails.getcarid(),
cardetails.getcarname(),
cardetails.getcarmodel(),
//从listcarColorFromDB中获取汽车颜色,它也有carid我不确定每辆车是否可以有多种颜色。如果可以,下面可以看到,可以在另一个循环中循环颜色并比较carid。如果颜色匹配,则将颜色添加到字符串中。最后使用创建的字符串作为p的最后一个参数rintln.I修复了一些格式问题以及名称和大写。类应该是大写的,变量应该是小写的
@RequestMapping(value = "/do.download")
public String download(Form form, Model model,HttpServletRequest request, HttpServletResponse response)throws IOException {
PrintWriter pw = null;
try {
logger.debug("+++++++++++++++++++++++++++++++++++++++");
response.setContentType("application/vnd.ms-excel");
response.setHeader("Content-disposition","attachment; filename=" + "Backup"+ ".csv");
response.setHeader("Expires", "0");
response.setHeader("Cache-Control","must-revalidate, post-csheck=0, pre-check=0");
response.setHeader("Pragma", "public");
pw = response.getWriter();
pw.println("carid,carname,carmodel,carcolor");
Car carFromDB = new Car();
List<CarDetails> carDetailsFromDB = new ArrayList<CarDetails>();
List<CarColor> carColorFromDB = new ArrayList<CarColor>();
carDetailsFromDB = Service.getCarDetails(carFromDB);
carColorFromDB = Service.getCarColor(carFromDB);
for (CarDetails carDetails : carDetailsFromDB) {
//loop through all the colors and find ones that match the carId for this carDetails
// then concatenate them together with a "|"
String colorsStr = "";
for(CarColor color : carColorFromDB){
if(color.getCarId() == carDetails.getCarId()){
colorsStr = colorsStr + "|" + color.toString();
}
}
//chop off the first character which should be a "|"
colorsStr = colorsString.substring(1);
pw.println(String.format("%s,%s,%s,%s",
carDetails.getCarId(),
carDetails.getCarName(),
carDetails.getCarModel(),
//get car color from the listcarColorFromDB which also has carid <--- this is where i need help
colorsStr
));
}
pw.flush();
} catch (Exception ex) {
ex.printStacktrace();
}
return null;
}
@RequestMapping(value=“/do.download”)
公共字符串下载(表单、模型、HttpServletRequest请求、HttpServletResponse响应)引发IOException{
PrintWriter pw=null;
试一试{
logger.debug(“+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++”;
response.setContentType(“application/vnd.ms excel”);
response.setHeader(“内容处置”、“附件;文件名=“+”备份“+”.csv”);
response.setHeader(“Expires”、“0”);
setHeader(“缓存控制”,“必须重新验证,后csheck=0,预检查=0”);
响应。setHeader(“Pragma”、“public”);
pw=response.getWriter();
println(“carid、carname、carmodel、carcolor”);
Car carFromDB=新车();
List carDetailsFromDB=new ArrayList();
List carColorFromDB=newarraylist();
carDetailsFromDB=Service.getCarDetails(carFromDB);
carColorFromDB=Service.getCarColor(carFromDB);
用于(CarDetails CarDetails:carDetailsFromDB){
//循环浏览所有颜色,并找到与此卡片细节匹配的颜色
//然后用“|”将它们连接在一起
字符串颜色sstr=“”;
for(CarColor颜色:carColorFromDB){
if(color.getCarId()==cardetals.getCarId()){
colorsStr=colorsStr+“|”+color.toString();
}
}
//切掉第一个应该是“|”的字符
colorsStr=colorsString.子字符串(1);
println(String.format(“%s,%s,%s,%s”,
carDetails.getCarId(),
carDetails.getCarName(),
carDetails.getCarModel(),
//从listcarColorFromDB中获取汽车颜色,它也有carid有两种方法可以处理它
在第一个循环中运行第二个循环,用于
for (carDetails cardetails : CarDetailsFromDB) {
for (carColor carColor : carColorFromDB ) {
//match the car id from 2 objects and act
}
}
创建一张地图,钥匙为汽车id,值为carColor
。访问循环中的地图以获得匹配的汽车颜色
您的问题是什么?是否有堆栈跟踪?是否更改了其他文件中的类名?
for (carDetails cardetails : CarDetailsFromDB) {
for (carColor carColor : carColorFromDB ) {
//match the car id from 2 objects and act
}
}