java,list数组转换成map
发布网友
发布时间:2022-04-27 11:07
我来回答
共3个回答
热心网友
时间:2023-09-14 13:32
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
public class TestArray {
public static void main(String[] args) {
/**
* 初始化一个 List,存放 String 数组,数组的第一位是 amount,第二位是 year,第三位是 month,第四位是 day 。
*/
List<String[]> arr = new ArrayList<String[]>();
arr.add(new String[] { "89", "2015", "06", "21" });
arr.add(new String[] { "89", "2015", "06", "22" });
arr.add(new String[] { "89", "2015", "06", "23" });
/**
* 创建一个 StringBuffer 临时存放 map.key 。
*/
StringBuffer key = new StringBuffer();
/**
* 建一个 map 对象,
*/
Map<String, String> map = new HashMap<String, String>();
for (int i = 0; i < arr.size(); i++) {
// 获取 List 中的 String 数组元素。
String[] element = arr.get(i);
// 数组的第二位、第三位、第四位拼接成 key 。
key.append(element[1]).append(element[2]).append(element[3]);
// 数组的第一位拼接成 value,初始化 map。
map.put(key.toString(), element[0]);
// 临时的 StringBuffer 清空内容以便下次循环继续使用。
key.delete(0, key.length());
}
// 打印 map
System.out.println(map.toString());
}
}
输出效果:
追问这么详细 还有注释,感激不尽,谢谢你
热心网友
时间:2023-09-14 13:32
public static void main(String[] args) {
List<Integer[]> list=new ArrayList<Integer[]>();
list.add(new Integer[]{89,2015,06,21});
list.add(new Integer[]{89,2015,06,22});
list.add(new Integer[]{89,2015,06,23});
Map<Integer, Integer> map=new HashMap<Integer, Integer>();
for (int i = 0; i < list.size(); i++) {
int key=0;
for (int j = 1; j < list.get(i).length; j++) {
key+=list.get(i)[j];
}
map.put(key, list.get(i)[0]);
}
System.out.println(map.toString());
}
热心网友
时间:2023-09-14 13:33
for(int i =0; i < list.size(); i++) {
Data data = list.get(i);
map.put(data.year + data.month + data.day, data.amount);
}追问请问 Data 是那个包啊
追答Data 是实体类,你需要一个实体类来存 amount year month day