Java中简单对list,map数据进行的操作

本文深入解析了Java中的List、Map及List<Map<key,value>>的使用方法,包括数据结构的理解、基础操作及循环处理技巧,适合初学者和进阶者参考。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Java中List,map及List<Map<key,value>>

一、首先确定数据的结构

    一般我们可以把从数据库,前端传过来的数据打印到控制台,比如:

  • List结构数据:[hello, java, word, xiaowu]
  • Map结构数据:{nihao=xiaoli, zaijian=xiaohong, hello=xiaowu}

    我最近才知道以上只是简单的数据,还有复杂一点数据,就是每个小List中存放Map<key,value>,再把每个小List存放到List中,比如:

  • List<Map<key,value>>结构数据:[[{gg=xiaowu, hh=xiaoli, ff=xiaohong}], [{aa=xiaofei, bb=xiaozhang, cc=xianghu}], [{dd=xiaozhu, ee=xiaoming, ff=xiaodou}]]

自己后续在试试别的数据,突然第一次见这种数据,感觉毫无下手出,有人告诉我是这样处理的:先把它当成一个list处理,循环处理出来就是熟悉的map,这样就简单多了。

二、List,map基础操作

  • List基本操作
     // 1、创建集合对象
        ArrayList arrayList = new ArrayList<>();
        // 2、list中添加数据,用add,一般数据为一次插入
        arrayList.add("123");
        arrayList.add("zhang");
        // 3、list中添加指定索引数据  目前数据为:[123, 2, zhang]
        arrayList.add(1,"2");
        // 4、判断list中是否存在字符,返回结果为true,false
        boolean contains = arrayList.contains("123");
        // 5、查询list的长度 该长度为 3
        int size = arrayList.size();
        // 6、判断list集合中是否为空
        boolean empty = arrayList.isEmpty();
        // 7、获取索引对应的数据 结果为:2
        Object o = arrayList.get(1);
        // 8、将list中索引为2的数据移除 移除数据 zhang
        arrayList.remove(2);
        // 9、将list中数据为2的移除  移除数据 2
       arrayList.remove("2");
        // 10、清空list 结果:arrayList=[]
        arrayList.clear();
  • Map基本操作
         // 1、创建数据类型为Map<String, String>
        Map<String, String> stringStringHashMap = new HashMap<>();
        // 2、往map中插入数据,数据形式为(key,value)
        stringStringHashMap.put("1"," ");

        // 3、判断map中是否为空 即便是所有value为空,key存在,也认为map中存在数据 返回结果为true
        boolean empty = stringStringHashMap.isEmpty();
        stringStringHashMap.put("2","b");
        stringStringHashMap.put("3","c");
        // 4、得到map的长度 size=3
        int size = stringStringHashMap.size();
        // 5、替换map中的数据.replace(key, oldvalue, newvalue) 返回 replace=ture
        boolean replace = stringStringHashMap.replace("1", " ", "a");
        // 6、替换map中的数据.replace(key, value) 无返回结果
        stringStringHashMap.replace("1", "a");
        // 7、判断map中数据是否存在key为"1"的数值 返回hascontainsKey=true
        boolean hascontainsKey = stringStringHashMap.containsKey("1");
        // 8、判断map中数据是否存在value为"1"的数值 hascontainsValue=true
        boolean hascontainsValue = stringStringHashMap.containsValue("a");
        // 9、取map中key为1的value value = a
        String value = stringStringHashMap.get("1");
 	   // 10、获取map中所有的key值 结果为strings = [1, 2, 3]
        Set<String> strings = stringStringHashMap.keySet();
        // 11、获取map中所有的value值 结果为values = [1, 2, 3]
        Collection<String> values = stringStringHashMap.values();
        //12、将smallHashMap中的所有数据,添加到stringStringHashMap中。 stringStringHashMap={1=a, 2=b, 3=c, 4=d}
        Map<String, String> smallHashMap = new HashMap<>();
        smallHashMap.put("4", "d");
        stringStringHashMap.putAll(smallHashMap);
        // 14、清空stringStringHashMap中的数据 stringStringHashMap = {}
        stringStringHashMap.clear();

三、集合循环操作

  • List循环基本操作
		//创建集合对象
        ArrayList<String> arrayList = new ArrayList<>();
        //添加多个字符串元素
        arrayList.add("hello");
        arrayList.add("hello");
        arrayList.add("hello");
        arrayList.add("java");
        arrayList.add("java");
        arrayList.add("java");
        arrayList.add("word");
        arrayList.add("word");
        arrayList.add("word");
        arrayList.add("hello");
        arrayList.add("hello");
        arrayList.add("hello");
        arrayList.add("xiaowu");
        //for遍历集合
        for (int x=0; x<arrayList.size(); x++){
            String s = (String) arrayList.get(x);
            System.out.println(s);
        }
        //迭代器
        Iterator<String> it = arrayList.iterator();
        while (it.hasNext()){
            String s = it.next();
            System.out.println(s);
        }
        //增强for循环
        for (String s : arrayList){
            System.out.println(s);
        }
  • Map集合循环基本操作
      /**
         * map循环的方式
         */
        Map<String, String> stringStringHashMap = new HashMap<>();
        stringStringHashMap.put("1","a");
        stringStringHashMap.put("2","b");
        stringStringHashMap.put("3","c");
        
         //1、map自带的.forEach((k,v) ->{每次循环的需求}); lambada函数
        stringStringHashMap.forEach((k, v) -> {
            System.out.println("key:value = " + k + ":" + v);
        });
        // 2、keySet获取map集合中key的集合 然后在遍历key,可以取key或value
        for(String key:stringStringHashMap.keySet()){
            String value = stringStringHashMap.get(key);//
            System.out.println("key:value = " + key + ":" + value);
        }
        // 2、keySet获取map集合中key的集合 然后在遍历key,可以取key或value
        for(String key:stringStringHashMap.keySet()){
            String value = stringStringHashMap.get(key);//
            System.out.println("key:value = " + key + ":" + value);
        }
  • list嵌套map集合循环基本操作
 //创建数据arrayList,数据为[[map1,map2,map3],[map1,map2,map3],[map1,map2,map3]]
        ArrayList arrayList = new ArrayList<>();

        ArrayList<Map> arrayList1 = new ArrayList<>();
        ArrayList<Map> arrayList2 = new ArrayList<>();
        ArrayList<Map> arrayList3 = new ArrayList<>();

        HashMap<String, String> stringStringHashMap = new HashMap<>();
        stringStringHashMap.put("gg","xiaowu");
        stringStringHashMap.put("hh","xiaoli");
        stringStringHashMap.put("ff","xiaohong");

        HashMap<String, String> stringStringHashMap2 = new HashMap<>();
        stringStringHashMap2.put("aa","xiaofei");
        stringStringHashMap2.put("bb","xiaozhang");
        stringStringHashMap2.put("cc","xianghu");

        HashMap<String, String> stringStringHashMap3 = new HashMap<>();
        stringStringHashMap3.put("dd","xiaozhu");
        stringStringHashMap3.put("ee","xiaoming");
        stringStringHashMap3.put("ff","xiaodou");

        arrayList1.add(stringStringHashMap);
        arrayList2.add(stringStringHashMap2);
        arrayList3.add(stringStringHashMap3);
        arrayList.add(arrayList1);
        arrayList.add(arrayList2);
        arrayList.add(arrayList3);

        //循环 每个数据都能精确操作
        ArrayList arrayList4 = new ArrayList<>();
        for (int i = 0; i < arrayList.size(); i++) {
            //循环第一次,得到arrayList1,arrayList2,arrayList3
            arrayList4 = (ArrayList) arrayList.get(i);
            for (int j = 0; j < arrayList4.size(); j++) {
                //循环第二次得到每个arrayList中map
                HashMap<String, String>  stringHashMap = (HashMap<String, String>) arrayList4.get(j);
                System.out.println(stringHashMap);
                    //map循环得到每个map中的key,value
                    for(String key:stringHashMap.keySet()){
                        String value = stringHashMap.get(key);//
                        System.out.println("key:value = " + key + ":" + value);
                    }
            }
        }
    }
}

结果为:在这里插入图片描述
这里只是大概的逻辑,具体还要看你的集合数据类型,仅供参考。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值