从一个List中取出多个值进行计算再放入另一个List里应该怎么做?
没听清楚你要怎么计算.. 计算和之后 再加入第二个list,那list2的 长度要改变了吧 。
你设一个数组来接受第一个list1的值,然后再计算数组里的数据。 再存入list2..
或者直接计算你 list1里面的值 然后直接存
取决你的计算方法
我第一个想到的就是循环,你能说点更清楚点么?
可以,获取你所知道的所需要计算的key的值,然后进行累加,将最新的结果存放至新的list,然后将其余的值放至新的list即可。
package com.yao.xfire.client;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
public class SumList {
public static void main(String[] args) {
List<String> list = new ArrayList<>();
list.add("money:2000");
list.add("money:3000");
list.add("money:4000");
list.add("age:18");
list.add("age:19");
list.add("age:20");
list.add("姓名:张三");
list.add("姓名:李四");
List<String> list2 = getLsit(list);
for(String str:list2) {
System.out.println(str);
}
}
public static List<String> getLsit(List<String> resList) {
List<String> list2 = new ArrayList<String>();
Map<String, Integer> map = new HashMap<String,Integer>();
String key,value;
for(String str: resList) {
key = str.split(":")[0];
value= str.split(":")[1];
try {
Integer valInt = Integer.parseInt(value);
if(map.containsKey(key)) {
Integer tmpInt = map.get(key);
map.put(key, valInt+tmpInt);
}else {
map.put(key, valInt);
}
} catch (Exception e) {
list2.add(str);
}
}
for(String key1: map.keySet()) {
list2.add(key1+":"+String.valueOf(map.get(key1)));
}
return list2;
}
}
打印结果:
姓名:张三
姓名:李四
money:9000
age:57