文章目录
容器
Java 集合简介
集合、数组都是对多个数据进行存储操作的结构,简称Java容器
前言
一方面, 面向对象语言对事物的体现都是以对象的形式,为了方便多个对象的操作,就要对象进行存储。另一方面使用 Array数组存储对象方面具有 一些弊 端,而 Java 集合就像一种容器,可以 动态地 把多个对象的引用放入容器中.
说明:此时的存储,主要指的是内存层面的存储,不涉及到持久化的存储(.txt,.jpg,.avi,数据库中)
数组在存储多个数据方面的特点:
- 一旦初始化以后,其长度就确定了。
- 数组一旦定义好,其元素的类型也就确定了。我们也就只能操作指定类型的数据了。
比如:String[] arr;int[] arr1;Object[] arr2;
数组在存储多个数据方面的缺点:
- 一旦初始化以后,其长度就不可修改。
- 数组中提供的方法非常有限,对于添加、删除、插入数据等操作,非常不便,同时效率不高。
- 获取数组中实际元素的个数的需求,数组没有现成的属性或方法可用
- 数组存储数据的特点:有序、可重复。对于无序、不可重复的需求,不能满足
集合框架
Collection单列集合
|----Collection接口:单列集合,用来存储一个一个的对象
-
|----List接口:存储有序的、可重复的数据。 -->“动态”数组
- |----ArrayList、LinkedList、Vector
-
|----Set接口:存储无序的、不可重复的数据 -->高中讲的“集合”
- |----HashSet、LinkedHashSet、TreeSet
Collection 分三大类
- list
- set
- Queue
Map双列集合
- |----Map接口:双列集合,用来存储一对(key - value)一对的数据 -->高中函数:y = f(x)
- |----HashMap、LinkedHashMap、TreeMap、Hashtable、Properties
泛型
概念
泛型是(Generics)是JDK1.5 的一个新特性,其实就是一个『语法糖』,本质上就是编译器为了提供更好的可读性而提供的一种小手段,小技巧,虚拟机层面是不存在所谓『泛型』的概念的。
作用
- 通过泛型的语法定义,约束集合元素的类型,进行安全检查,把错误显示在编译期
- 代码通用性更强,后面有案例
- 泛型可以提升程序代码的可读性,但它只是一个语法糖(编译后这样的东西就被删除,不出现在最终的源代码中),对于JVM运行时的性能是没有任何影响的。
泛型声明
- 泛型可以在接口、方法、返回值上使用:
java.util.List泛型接口/类:
public interface Collection {}
泛型方法的声明:
public void print(E e) {}
在方法返回值前声明了一个表示后面出现的E是泛型,而不是普通的java变量。