一、java为什么要有集合?
在内存中申请一块空间用来存储数据,在Java中集合就是替换掉定长的数组的一种引用数据类型。数组长度固定,定义长了造成内存空间的浪费,定义短了不够用。集合大小可以变,用多少空间拿多少空间。数组可以存储基本数据类型和引用数据类型,集合中只能存储引用数据类型(存储的为对象的内存地址),若是简单的int,它会自动装箱成Integer如:list.add(100);//为自动装箱,100为Integer包装的。
二、java为什么要有不一样的集合?
在java中每一个不同的集合,底层会对应不同的数据结构。往不同的集合中存储元素,等于将数据放到了不同的数据结构当中。什么是数据结构?数据存储的结构就是数据结构。不同的数据结构,数据存储方式不同。
三、java有哪些数据结构的集合?
1、单列集合List,可以重复:ArrayList/LinkedList
List是有序、可重复的单列集合,集合中的每个元素都有对应的顺序索引,我们可以通过该索引来访问指定位置上的集合元素。
2、单列集合Set不可重复:HashSet/TreeSet
Set系列集合特点是无序、不重复、无索引。
单列集合接口List和Set都继承了Collection接口。
3、双列集合:interface Map: K(key)键 ,V(value)值,用来存储键值对的集合,将键映射到值的对象,不能出现重复的键,每个键最多可以映射到一个值。
Map和Collection没有继承关系。 Map集合以key和value的方式存储数据:键值对key和value都是引用数据类型。 key和value都是存储对象的内存地址。key起到主导的地位,value是key的一个附属品。
四、如何向Map集合中存储重复数据作为键?
可以在遍历重复数据时将键加上(+)下标索引index,使其不再重复再存储到Map集合中。