集合框架简介
1.为什么使用集合框架
缘由:由于数组在创建(初始化)的时候会默认定义数组的长度,而数组的长度是不变的,所以导致数组的赋值及创建会有内存浪费的现象,于是集合作为可以更改长度的“数组”,可以解决内存浪费的现象
2.Java集合框架架构图
(1)集合有两个父接口 Collection、Map
(2)Collection有两个子接口 List、set
(3)List有两个常见的实现类 ArrayList、LinkedList
(4)Set有两个常见的实现类 HashSet、TreeSet
(5)Map有两个常见的实现类 HashMap、HashTable
3.Java集合框架特点
(1)List 特点:有序、可重复
(2)Set 特点:无序、不可重复
(3)Collection 特点:无序、可重复
(4)Map 特点:存放一对值【键值对】(key 键 -- value 值)
List接口
1.ArrayList 和LinkedList 的区别:
(1)ArrayList【以数组的形式存储】 特点:查询效率高,增删改效率低
(2)LinkedList【以链表的链表存储】 特点:查询效率低,增删改效率高
2.List接口的实现类种类
ArrayList、LinkedList
3.ArrayList集合类
(1)实例化ArrayList对象
(2)添加数据 add()
第一种:直接添加值
第二种:通过角标添加值
(3)删除数据
第一种:通过角标删除数据(1代表角标而不是值)
第二种:通过值删除数据(“1”代表值而不是角标)
(4)查询数组
第一种:传统for循环(size代表长度,get是获取值)
第二种:增强for循环
(5)拓展:
ArrayList.size()是获取数组的长度的方法
ArrayList.get(i)是获取数组的每个元素值
4.ArrayList集合类(泛型)
(1)泛型:<> 用来指定集合存放数据的类型
例:存放Integer(数值)类型和存放String类型
(2)泛型存放对象类型
5.LinkedList集合类
(1)存放Object类型数据
(2)LinkedList 存放对象类型数据
(3)拓展
set接口
核心要点:
(1)Iterator 迭代器类型
(2)iterator()获取迭代器对象【迭代器的作用是遍历set集合】
(3)hasNext()判断是否有下一个值
(4)next()获取下一个值
(5)sets集合是没有顺序的
(6)sets集合不可存放重复的数据
Object类型
String类型(泛型)
对象类型
Map集合类
1. 实例化HashMap
2.给HashMap赋值
3.遍历HashMap
第一种:
第二种:
代码体现:
Map -- 泛型
Map -- 对象
实战:
实战1
实战2
实战3