Java集合
1、集合与数组的区别
(1)长度区别:集合长度可变,数组长度不可变
(2)内容区别:集合可存储不同类型元素,数组存储只可单一类型元素
(3)元素区别:集合只能存储引用类型元素,数组可存储引用类型,也可存储基本类型
2、Collection
2.1、Collection集合的方法
2.2、Collection与set 、list的关系
3、List和Set区别
1.Set 接口实例存储的是无序的,不重复的数据。List 接口实例存储的是有序的,可以重复的元素。
2. Set检索效率低下,删除和插入效率高,插入和删除不会引起元素位置改变 <实现类有HashSet,TreeSet>。
3. List和数组类似,可以动态增长,根据实际存储的数据的长度自动增长List的长度。查找元素效率高,插入删除效率低,因为会引起其他元素位置改变 <实现类有ArrayList,LinkedList,Vector> 。
4、List 接口
特点:有索引,精准操作元素;
元素有序,存储及取出时顺序一致;
元素可重复,通过.equals()比较是否重复。
它利用索引(index),定义了一些特殊方法:
get(int index,E e) 获取指定位置的元素;remove(int index)移除指定位置的元素;
add(int index,E e) 将元素添加到指定位置;set(int index,E e) 用元素替换指定位置的元素;
5、Set接口
特点:元素不可重复;
元素无序,存储及取出时顺序不一致;
没有索引,因此不能使用普通For循环遍历;
Set与Collection 接口中的方法基本一致,没有进行功能上的扩充;
6、Map接口(双列集合)
特点:元素包含两个值(key,value)即键值对, key不允许重复,value可以重复, key与value是一一对应的。元素无序;
Map接口是双列集合的最顶层接口,定义了一些通用的方法。
put(key , value) 添加元素; remove(key) 删除key对应元素;
containsKey(key) 判断是否存在key对应元素;get(key) 获取key对应元素;
KeySet() 获取所有的key,存到Set集合中;entrySet() 获取所有的元素,存到Set集合中;
ps:Map集合必须保证保证key唯一,作为key,必须重写hashCode方法和equals方法,以保证key唯一。