一张表格:
编号:A 数量:10
编号:A 数量:20
编号:B 数量:30
编号:C 数量:40
编号:C 数量:50
编号:C 数量:60
编号:D 数量:70
编号:获取的值 数量:手动录入的值
编号:获取的值 数量:手动录入的值
编号:获取的值 数量:手动录入的值
编号是从数据库中取出来的 数量是自己填写的
现在我想循环A 的数量有多少个,然后显示出来
比如: 编号A,数量:30
编号B,数量:30
编号C,数量:150
编号D,数量:70
请问java循环怎么写
求一下代码怎么修改
private void submit() {
int count = 0;
String demoNo = "";
for (int i = 0; i < subVos.size(); i++) {
demoNo = subVos.get(i).getSerialNub().toString(); //编号 数据库获取的值
String number = subVos.get(i).getEditView().getText().toString();//数量 手动录入的值
int k = 0;
if("".equals(number)){
k = 0;
}else{
k = Integer.parseInt(number);
}
count = count+k;
System.out.print("编号:"+ demoNo +"总数量"+count);
}
}
------解决方案--------------------
Map<String,Integer> demoMap = new HashMap<String,Integer>();
for(xxDto sv:subVos){
if(demoMap.get(sv.getSerialNub())==null){
demoMap.put(sv.getSerialNub(), sv.getEditView());
}else{
int num = demoMap.get(sv.getSerialNub())+sv.getEditView();
demoMap.put(sv.getSerialNub(), num);
}
}
for(String key:demoMap.keySet()){
System.out.print("编号:"+ key +"总数量"+demoMap.get(key));
}
------解决方案--------------------
这是以你的基础上改的,其实1楼已经说了核心部分了
private void submit() {
int count = 0;
String demoNo = "";
Map<String,Integer> map = new HashMap<String, Integer>();
for (int i = 0; i < subVos.size(); i++) {
demoNo = subVos.get(i).getSerialNub().toString(); //编号 数据库获取的值
String number = subVos.get(i).getEditView().getText().toString();//数量 手动录入的值
int k = 0;
if("".equals(number)){
k = 0;
}
else{
k = Integer.parseInt(number);
}
//用Map分组记录数量
if(map.get(demoNo)!=null){
map.put(demoNo, map.get(demoNo)+k);
}
else{
map.put(demoNo, k);
}
//count = count+k;
//System.out.print("编号:"+ demoNo +"总数量"+count);
}
for(String key : map.keySet()){
System.out.println("编号:" + key +"总数量" + map.get(key));
}
}