java,list数组转换成map

list里面是{amount,year,month,day},{89,2015,06,21},{89,2015,06,22},{89,2015,06,23},转成map<... list里面是{amount,year,month,day},{89,2015,06,21},{89,2015,06,22},{89,2015,06,23},
转成map<key,value>
map.key=year+month+day;
map.value = amount;
想知道这样的list怎么转map,求具体的代码 谢谢大家
展开
 我来答
夜破晓0
2017-04-26 · 超过15用户采纳过TA的回答
知道答主
回答量:23
采纳率:0%
帮助的人:27万
展开全部

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());

    }
}

输出效果:

追问
这么详细 还有注释,感激不尽,谢谢你
好低文化
2017-04-26 · TA获得超过227个赞
知道小有建树答主
回答量:231
采纳率:60%
帮助的人:82.5万
展开全部
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());
    }
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友8716ff3
2017-04-26 · 超过19用户采纳过TA的回答
知道答主
回答量:71
采纳率:100%
帮助的人:16.7万
展开全部
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
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式