Java中的map是线性结构吗?

如题所述

map不是线性结构,常用的线性结构有:线性表,栈,队列,双队列,数组,串。
数据结构中线性结构指的是数据元素之间存在着“一对一”的线性关系的数据结构。如(a1,a2,a3,.....,an),a1为第一个元素,an为最后一个元素,此集合即为一个线性结构的集合。
而Map 集合是用存储元素对(键值对)来存储元素,每个键映射到一个值,不存在最后一个元素的说法,也没前驱和后继元素,所以是非线性的。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2015-11-16
不是的,是关联数组,属于非线性结构。
线性结构是一个有序数据元素的集合。它有几个重要特征:
1.集合中必存在唯一的一个"第一个元素";
2.集合中必存在唯一的一个"最后的元素";
3.除最后元素之外,其它数据元素均有唯一的"后继";
4.除第一元素之外,其它数据元素均有唯一的"前驱"。
常用的线性结构有:线性表,栈,队列,双队列,数组,串等,其中数组是指的常规数组,其索引值是非负的整数,即我们常说的元素下标值,可用该索引值来单独选择这些数据。
常见的非线性结构有:二维数组,多维数组,关联数组,广义表,树(二叉树等),图。
Map作为一种“关联数组”,是一种具有特殊索引方式的数组。不仅可以通过整数来索引它,还可以使用字符串或者其他类型的值(除了NULL)来索引它。例如在java的map中,关联数组的索引值是被称为Keys的标量,可以用于检索数组中的数值(Values),也就是所谓的key-value对。关联数组的元素没有特定的顺序,也不满足线性结构的几个特征,因此属于非线性结构。
相似回答