比如说我有一个一维数组
(QQ,WW,EE,WW,EE,WW,QQ,EE,QQ,EE)
然后我还有一个一维数组
(0,1,1,2,2,2,2,1,3,0)
然后他们的位置是对应的,我现在有个需求
就是比如说第一个一维数组里面的第一个数据QQ,对应的值是0,然后第一个数组里面有
3个QQ,就是把下面的值相加,
我用冒泡算法表示有问题,求大神指点来个源码
用JS或者java都行
public void test01() {
String[] a = {
"QQ", "WW", "EE", "WW", "EE", "WW", "QQ", "EE", "QQ", "EE"
};
int[] b = {
0, 1, 1, 2, 2, 2, 2, 1, 3, 0
};
// 计算 QQ 相加的值
System.out.println(getCount(a, b, "QQ"));
}
public int getCount(String[] a, int[] b, String str) {
int sum = 0;
for (int i = 0; i < a.length; i++) {
if ("QQ".equals(a[i])) {
sum += b[i];
}
}
return sum;
}
public static void main(String[] args) {
// TODO Auto-generated method stub
HashMap<String, String> map = new HashMap<String, String>();
String[] list = { "QQ", "WW", "EE", "WW", "EE", "WW", "QQ", "EE", "QQ", "EE" };
int[] list_int = { 0, 1, 1, 2, 2, 2, 2, 1, 3, 0 };
int i = 0;
for (String s : list) {
if(i+1>list_int.length)
break;
if (map.get(s) == null) {
map.put(s, list_int[i]+"");
}else{
map.put(s, (Integer.parseInt(map.get(s))+list_int[i])+"");
}
i++;
}
System.out.println(map.get("QQ"));
Iterator<Entry<String, String>> iter = map.entrySet().iterator();
while(iter.hasNext()){
Entry entry = iter.next();
Object key = entry.getKey();
Object val = entry.getValue();
System.out.println(key+" "+val);
}
}
var a = ['QQ','WW','EE','WW','EE','WW','QQ','EE','QQ','EE'];
var b = [0,1,1,2,2,2,2,1,3,0]
function test(a,b){
var i = 0,
o = {},
l = a.length;
for(;i<l;i++){
o[a[i]] = (o[a[i]] || 0) + b[i]
}
return o;
}
console.log(test(a,b));