List集合能放进Map集合吗?

Java集合容器 专栏收录该内容
12 篇文章 0 订阅

List into Map

package list_into_map;

import java.awt.image.Kernel;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

/**
 * list 集合放在map中
 * @author root
 * @version V1.0
 * @Package list_into_map
 * @date 2020/9/9 19:09
 */
public class List_Into_Map {
    public static void main(String[] args) {
        List<String> list = new ArrayList<String>();
        Map<Integer,String> map = new HashMap<Integer,String>();
        list.add("a");
        list.add("b");
        list.add("c");

//取出元素一个一个存放
        for(int i = 0; i < list.size(); i++){
            map.put(i,list.get(i));
        }
        for (Map.Entry<Integer,String> entry : map.entrySet()) {
            System.out.println(entry.getKey()+","+entry.getValue());
        }

        //map.forEach((k,v) -> System.out.println(k+" "+ v));

        test1(list);
        test2();

    }

//直接放入
    public static  void test1(List list){
        Map<String,List> map = new HashMap<String,List>();
        //list 放在map中
        map.put("list",list);
        //取出的时候注意类型转换
        List list2 = (List)map.get("list");
        for (Object item : list2) {
            System.out.println(item);
        }
    }

    public static void test2(){
        List list = new ArrayList();
        list.add("a");
        list.add("b");
        list.add("c");

        Map<String,String> map = new HashMap<String,String>(list.size());
        for (int i = 0; i < list.size(); i++) {
            map.put(list.get(i).toString(), list.get(i).toString());
        }
        map.forEach((k,v)->System.out.println("Item : " + k + " Count : " + v));

    }
}

Map into List

package Test;
import java.util.*;


public class Test {

public static void main(String[] args) {

//第一种:直接加入
        List<Map<String, Object>> list1 = new ArrayList<Map<String, Object>>();
        Map<String, Object> m1 = new HashMap<String, Object>();
        m1.put("age", "55");
        m1.put("name", "66");
        list1.add(m1);
        System.out.println(list1);
//[{name=66, age=55}]
//第二种:直接插入,但是key永远只对应一个value
        List<Map<String, Object>> list2 = new ArrayList<Map<String, Object>>();
        Map<String, Object> m = new HashMap<String, Object>();
        m.put("age", "55");
        m.put("name", "66");
        list2.add(m);
        for (Map<String, Object> m2 : list2) {
            m2.put("key", "123");
        }
        System.out.println(list2);
//[{name=66, age=55, key=123}]
//第三种:能插入多个值,就是一个key能对应多个value
        List<Map<String, Object>> list3 = new ArrayList<Map<String, Object>>();
        Map<String, Object> m3 = new HashMap<String, Object>();
        m3.put("age", "55");
        m3.put("name", "66");
        for (int i = 0; i < 2; i++) {
            Map<String, Object> mm = new HashMap<String, Object>();
            mm.putAll(m3);
            mm.put("key1", i);
            list3.add(mm);
        }
        System.out.println(list3);
//[{name=66, key1=0, age=55}, {name=66, key1=1, age=55}]

    }

}

 

  • 0
    点赞
  • 0
    评论
  • 3
    收藏
  • 打赏
    打赏
  • 扫一扫,分享海报

©️2022 CSDN 皮肤主题:精致技术 设计师:CSDN官方博客 返回首页

打赏作者

原野的稻草人

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值