集合

为了更好的理解集合,我们需要首先引入一个概念:泛型

1 泛型

1.1 概念

其实就是< ? >的部分,它就是泛型
泛型是(Generics)JDK1.5 的一个新特性,通常用来和集合对象一起使用
泛型概念非常重要,它是程序的增强器,它是目前主流的开发方式

 1.2 作用
那泛型有什么作用呢?
我们可以把泛型理解成一个“语法糖”,本质上就是编译器为了提供更好的可读性而提供的一种小手段,小技巧,虚拟机层面是不存在所谓“泛型”的概念的。

来约束集合中元素的类型,增强方法的通用性,编译器可以在编译期根据泛型约束提供一定的类型安全检查。把报错实际提前
泛型可以提升程序代码的可读性,但是它只是一个“语法糖”(编译后这样的部分会被删除,不出现在最终的源码中),所以不会影响JVM后续运行时的性能.

泛型声明

泛型可以在接口 类 方法上使用

java泛型List参数怎么传入实参 java list泛型集合_java

常用名称

java泛型List参数怎么传入实参 java list泛型集合_集合_02

2 Collection接口

2.1 集合前言

Java语言的java.util包中提供了一些集合类,这些集合类又称之为容器
提到容器不难想到数组,集合类与数组最主要的不同之处是,数组的长度是固定的,集合的长度是可变的,而数组的访问方式比较单一,插入/删除等操作比较繁琐,而集合的访问方式比较灵活

java泛型List参数怎么传入实参 java list泛型集合_java泛型List参数怎么传入实参_03

继承结构

java泛型List参数怎么传入实参 java list泛型集合_泛型_04

 Collection方法速查表

java泛型List参数怎么传入实参 java list泛型集合_java_05

3 List接口

3.1 概述
有序的colletion(也称为序列).此接口的用户可以对列表中的每个元素的插入位置进行精确的控制,用户可以根据元素的整数索引(在列表中的位置)来访问元素,并搜索列表中的元素.

3.2 特点
元素都有下标
数据是有序的
允许存放重复的元素
3.3 List方法速查表

java泛型List参数怎么传入实参 java list泛型集合_数组_06

4 ArrayList

4.1 概述

  1. 存在java.util包中
  2. 内部是用数组结构存放数据,封装数组的操作,每个对象都有下标
  3. 内部数组默认的初始容量是10,如果不够会以1.5倍的容量增长
  4. 查询快,增删数据效率会低

4.2 创建对象 

java泛型List参数怎么传入实参 java list泛型集合_java_07

5 LinkedList

5.1 概述

链表,两端效率高,底层就是链表实现的

java泛型List参数怎么传入实参 java list泛型集合_泛型_08

 

6 扩展: ArrayList扩容
ArrayList相当于在没指定initialCapacity时就是会使用延迟分配对象数组空间,当第一次插入元素时才分配10(默认)个对象空间。假如有20个数据需要添加,那么会分别在第一次的时候,将ArrayList的容量变为10;之后扩容会按照1.5倍增长。也就是当添加第11个数据的时候,Arraylist继续扩容变为10*1.5=15;当添加第16个数据时,继续扩容变为15 * 1.5 =22个