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

版权声明:本文为z2431435原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。