Java集合框架概述
一方面,面向对象语言对事物的体现都是以对象的形式,为了方便对多个对象的操作,就要对对象进行存储。另一方面,使用Array存储对象方面具有一些弊端,而Java集合就像一种容器,可以动态地把多个对象的引用放入容器中。
- 数组在内存存储方面的特点:
- 数组初始化以后,长度就确定了。
- 数组声明的类型,就决定了进行元素初始化时的类型
- 数组在存储数据方面的弊端:
- 数组初始化以后,长度就不可变了,不便于扩展
- 数组中提供的属性和方法少,不便于进行添加、删除、插入等操作,且效率不高。同时无法直接获取存储元素的个数
- 数组存储的数据是有序的、可以重复的。---->存储数据的特点单一
Java集合类可以用于存储数量不等的多个对象,还可用于保存具有映射关系的关联数组。
集合、数组都是对多个数据进行存储操作的结构,简称Java容器。
说明:此时的存储,主要指的是内存层面的存储,不涉及到持久化的存储(.txt,.jpg,.avi,数据库中)
- 数组在存储多个数据方面的特点:
- 一旦初始化以后,其长度就确定了。
- 数组一旦定义好其元素的类型也就确定了。我们也就只能操作指定类型的数据了。比如: String []arr;int []arr1;Object[ ] arr2;
- 数组在存储多个数据方面的缺点:
- 一旦初始化以后,其长度就不可修改。
- 数组中提供的方法非常有限,对于添加、删除、插入数据等操作,非常不便,同时效率不高。
- 获取数组中实际元素的个数的需求,数组没有现成的属性或方法可用
- 数组存储数据的特点:有序、可重复。对于无序、不可重复的需求,不能满足。
Java集合框架概述:集合的使用场景
Java集合框架概述涉及到的API
注:JDK提供的集合API位于java.util包内
集合框架(括号里为实现类)
- collection接口:单列集合,用来存储一个一个的对象
-
List接口:存储有序的、可重复的数据(动态数组)(ArrayList、 LinkedList. Vector)
-
Set接口:存储无序的、不可重复的数据(HashSet、 LinkedHashSet、 Treeset
)
- Map接口:双列集合,用来存储一对(key - value)一对的数据(HashMap、 LinkedHashMap、 TreeMap、Hashtable、Properties)