数组与集合
- 集合与数组存储数据概述
集合,数组都是多个数据经行存储操作的结构,简称容器
说明:此时的存储,主要指的是内存层面的存储,不涉及到持久化的存储(.txt,.jpg,.avi,数据库中) - 数组存储的特点:
一旦初始化后,其长度也就确定了
数组一旦定义好,其元素的类型也就确定了。 - 数组存储的弊端
一旦初始化以后,其长度就不可以修改。
数组中提供的方法非常的有限
获取数组中实际元素的个数需求,数组中没有现成的属性或者方法可用 - 结合存储的优点:
解决数组存储数据方面的弊端
集合继承树
|----Collection接口:单列集合,用来存储一个一个的对象
-
|----Set接口:存储无序的、不可重复的数据|----List接口:存储序的、可重复的数据。 -->“动态”数组 |----ArrayList、LinkedList、Vector
-
|----HashSet、LinkedHashSet、TreeSet
map系列
注意点:
1 使用Collection集合存储对象,要求对象所属的类满足:
向Collection接口的实现类的对象中添加数据obj时,要求obj所在类要重写equals().
iterator接口
Collection子接口之一:list接口
Collection子接口之二:Set接口
Set底层都是用的Map就不写了
Map接口
Java Map接口,HashMap,LinkedhashMap,TreeMap源码解析,HashTable
Collections工具类的使用
-
作用:操作Collection和Map的工具类
-
常用方法:
- reverse(List):反转 List 中元素的顺序
- shuffle(List):对 List 集合元素进行随机排序
- sort(List):根据元素的自然顺序对指定 List 集合元素升序排序
- sort(List,Comparator):根据指定的 Comparator 产生的顺序对 List 集合元素进行排序
- swap(List,int, int):将指定 list 集合中的 i 处元素和 j 处元素进行交换
- Object max(Collection):根据元素的自然顺序,返回给定集合中的最大元素
- Object max(Collection,Comparator):根据 Comparator 指定的顺序,返回给定集合中的最大元素
- Object min(Collection)
- Object min(Collection,Comparator)
- int frequency(Collection,Object):返回指定集合中指定元素的出现次数
- void copy(List dest,List src):将src中的内容复制到dest中
- boolean replaceAll(List list,Object oldVal,Object newVal):使用新值替换 List 对象的所旧值
说明:ArrayList和HashMap都是线程不安全的,如果程序要求线程安全,我们可以将ArrayList、HashMap转换为线程的。
使用synchronizedList(List list) 和 synchronizedMap(Map map)
3.面试题:
面试题:Collection 和 Collections的区别?