List<Map<String, Object>>——多层嵌套的数据结构

快速理解多重嵌套结构

对于多层嵌套的数据结构,需要层层分解。
List<Map<String, Object>>为例,首先可以看到两种结构,分别是List和Map。
可以观察到List在外层,用c语言做类比,可以看做是一个指针数组,指针数组,其实就是一个元素为指针的数组。
那么回到这个例子,List<Map<String, Object>>不就是元素为Map的List吗?即List集合中的对象是一个Map对象,而这个Map对象的键是String类型,值是Object类型。

Map基础知识

Map 是一种键-值对(key-value)集合,Map 集合中的每一个元素都包含一个键对象和一个值对象。其中,map中键可以是任意类型的对象,键对象不允许重复,每个键都有一个对应的值。值对象可以重复,并且值对象还可以是 Map 类型的。

键-值对(key-value)就如同数组中的下标和值,通过通过键找值就如同下标找数组值。

Map本身是一个接口,要使用Map需要通过子类进行对象实例化。

如声明Map<String, List> map = null;

方法名称说明
get(Object key)返回 Map 集合中指定键对象所对应的值。
put(K key, V value)向 Map 集合中添加键-值对,返回 key 以前对应的 value,如果没有, 则返回 null
remove(Object key)从 Map 集合中删除 key 对应的键-值对,返回 key 对应的 value,如果没有,则返回null
entrySet()返回 Map 集合中所有键-值对的 Set 集合,此 Set 集合中元素的数据类型为 Map.Entry
keySet()返回 Map 集合中所有键对象的 Set 集合
HashMap map = new HashMap();
        map.put("1", "a"); 
        map.put("2", "b");
        map.put("3", "c");
        map.put("4", "d");
        map.put("5", "e");

List

List是有序的Collection,使用此接口能够精确的控制每个元素插入的位置。用户能够使用索引(元素在List中的位置,类似于数组下 >标)来访问List中的元素,这类似于Java的数组。

void add(String item)  //依次往后添加添加元素
void add(String item, int index) //在指定位置处添加元素
void remove(int position) //删除第几个元素(索引从0开始)
void remove(String item) //删除相同的元素
void removeAll() //删除所有元素

例子

查询数据库
public List<Map<String,Object>>  userList(){
        String sqlSearchUserAll = "select * from t_user";
        List<Map<String, Object>> list_maps = jdbcTemplate.queryForList(sqlSearchUserAll);
        return list_maps;
    }
List<Map<String, Object>> listMaps = new ArrayList<Map<String, Object>>();


Map<String, Object> map = new HashMap<String, Object>();
map1.put("1", "a");
map1.put("2", "b");
map1.put("3", "c");
listMaps.add(map);
  • 2
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Map<List<Map<String,Object>>>是一个多层嵌套数据结构。首先,它是一个Map,其中的键是String类型,值是一个List。这个List又包含了多个Map,其中的键是String类型,值是Object类型。换句话说,Map<List<Map<String,Object>>>可以被看作一个Map,其值是一个List,而这个List中的每个元素又是一个Map。对于这个数据结构,可以使用多种方式进行遍历,包括嵌套循环遍历、迭代器嵌套遍历和Lambda表达式嵌套遍历。在嵌套循环遍历中,首先遍历外层Map的键,然后在内层循环中遍历List中的Map的键值对。通过迭代器嵌套遍历,可以使用外层Map的迭代器遍历,然后在内层循环中使用List中的Map的迭代器进行遍历。而使用Lambda表达式嵌套遍历时,可以首先遍历外层Map的entrySet,然后在内层Lambda表达式中遍历List中的Map的entrySet。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [ListMapString, Object——多层嵌套数据结构](https://blog.csdn.net/z2431435/article/details/124046421)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *2* *3* [ListMapString, ObjectMapString,ListMapString, Object多方式循环遍历](https://blog.csdn.net/qq_42055933/article/details/127914726)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值