容器
1. 容器概述
-
数组的缺点
-
2. Collection 体系
-
特点
-
List
-
ArrayList
-
LinkedList
-
Vector
-
Stack
-
-
-
Set
-
HashSet
-
LinkedHashSet
-
-
TreeSet
-
package com.qf.collection;
/**
* java 的集合框架。collection framework。
* 主要学习的内容:
* 各种不同特点的容器。
*
* 数组的缺点:
* 1:数组定长。不能自动扩容。
* 2:数组的元素的类型必须是唯一的。
* 3:数组插入删除效率比较低。
* 4:没有封装。
*
* 大概学习三类容器:
* 1:序列 Sequence(List)。元素是有序的(有序号,有下标)元素不唯一。
* 2:集 Set 元素的特点:无序,唯一。
* 3:映射 Map。元素的特点:一个元素由一对数据构成。一个称为键key,一个称为值value。(key+value-->Node)Node Map 中的元素。
* 例子:身份证号key,人的信息:value。
* key 的特点:无序唯一。
* value 特点:无序,不唯一。
*
*
* 集合框架部分的内容都在 java.util 包下。
*
* 1:Collection:
* 1:是 java 集合框架部分的顶级接口。
* 2:Collection 容器的特点:
* 对实现的子类的要求:元素可以【不唯一】,可以【无序】。子类实现的时候可以添加更加严苛的功能。
* Collection接口中定义的抽象方法,没有提供根据下标添加元素的方法。添加的方法没有要求,重复的内容不能添加。
*
* 2:java.util.Collection 有两个主要的子接口。
* --- List
* 在Collection的基础上,增加了根据下标处理元素的方法。元素的特点:有序(添加的顺序(添加的序号)),不唯一。
* --- Set
* 在Collection的基础上,增加去重的要求,元素的特点:无序,唯一的。
*
* 3:java.util.List
* --- 接口。它有两个重要的实现的子类。
* ---ArrayList
* ---LinkedList
*
*/
3. List 接口 ***
4. ArrayList ***
-
基本使用
-
null
-
package com.qf.collection;
import java.util.ArrayList;
/**
* java.util.ArrayList 介绍: 1:容器底层使用的数据结构,底层使用的数据结构是数组。 transient Object[]
* elementData; 2:相比于数组的优点: 1:有封装了。 2:自动扩容。
* 初始容量为0,第一次添加元素容量为10.需要扩容的时候,每次扩容为现有容量的50%。 3:元素类型多样。 缺点:数组剩下的缺点。
*
* 3:ArrayList 的特点: 1:底层使用Object[] 数组作为数据结构。可以将ArrayList 容器理解为 有封装数组的。
* 2:扩容规则:初始容量为0,第一次添加元素容量为10.需要扩容的时候,每次扩容为现有容量的50%。 3:元素有序,不唯一,可以有多个null.
* 4:元素类型任意。 5: 如果想根据内容删除对象,那么需要重写 equals 方法。
* 5:private static final int MAX_ARRAY_SIZE = Integer.MAX_VALUE - 8;
* 容器的最大容量。如果超过容量,就添加不成功。
*
*/
public class ArrayListTest {
-