(初稿 太晚了,明天再进行补充)
1、对象数组(掌握)
(1)数组既可以存储基本数据类型,也可以存储引用类型。它存储引用类型的时候的数组就叫对象数组。
(2)案例:
用数组存储5个学生对象,并遍历数组。
1 package day02; 2 3 /** 4 * @author WYH 5 * @version 2019年11月12日 下午10:28:33 6 */ 7 public class test { 8 public static void main(String[] args) { 9 Students[] s = new Students[2]; 10 11 Students s1 = new Students("xiao",21); 12 Students s2 = new Students("da",22); 13 14 s[0] = s1; 15 s[1] = s2; 16 17 for(int i = 0;i<s.length;i++) { 18 System.out.println(s[i]); 19 } 20 21 22 } 23 24 }
2、集合(Collection)(掌握)
(1)集合的由来?
我们学习的时Java -- 面向对象 --操作很多对象 --存储 -- 容器(数组和StringBuffer)-- 数组而数组得长度固定,所以不适合做变化得需求,Java就提供了集合供我们使用。
(2)集合和数组得区别?
A: 长度区别
数组固定
集合可变
B: 内容区别
数组可以是基本类型,也可以是引用类型
集合只能是引用类型
C: 元素内容
数组只能存储同一种类型
集合可以存储不同类型(其实集合一般存储得也是同一种类型)
(3)集合的继承体系结构?
由于需求不同,Java就提供了不同得集合类,而这多个集合类得数据结构不同,但是他们都是要提供存储和遍历功能得容器,我们把他们得共性不断向上提取,
最终就形成了集合得继承体系结构。
Collection
|--List
|--ArrayList
|--Vector
|--LinkList
|--Set
|--HashSet
|--TreeSet
(4)Collection得功能概述( 自己补齐)
A: 添加功能
B:删除功能
C: 判断功能
D: 获取功能
E: 长度功能
F: 交集(了解)
G: 把集合转数组(了解)
(5)Collection集合得遍历
A: 把集合转数组(了解)
(代码补充)
B: 迭代器(集合专用方式)
(代码补充)
(6)迭代器
A: 是集合得获取元素得方式
B: 是依赖于集合而存在得
C:迭代器得原理和源码
a:为什么定义为了一个接口而不是一个实现类(如果是实现类,那么就要提供具体得实现方法,但是我们的集合有很多种,所以是一个接口)
b: 看了看迭代器的内部类实现
(7)Collecton集合的案例(遍历方式 迭代器)
集合的操作步骤:
A: 创建集合对象
B: 创建元素对象
C: 把元素添加带集合
D: 遍历集合
A: 存储字符串并遍历
(代码补充)
B: 存储自定义对象并遍历
(代码补充)
2、集合(List)(掌握)
(1)List是Collection的子接口
特点:有序(存储顺序和取出顺序一致),可重复。
(2)List的特有功能:( 自己补齐)
A: 添加功能
B: 删除功能
C: 获取功能
D: 迭代器功能
E: 修改功能
(3)List集合的特有遍历功能
A: 由size()和get()结合。
B: 代码演示
(代码补充)(一种迭代器,一种for循环)
(4)列表迭代器的特有功能:(了解)
可以逆向遍历,但是要先正向遍历,所以毫无意义,基本不会使用。
(5)并发修改异常
A: 出现的异常
迭代器遍历集合,集合修改集合元素
B: 原因
迭代器是依赖集合二点,而集合的改变,迭代器并不知道。
C: 解决方案
a: 迭代器遍历,迭代器修改(ListIterator)
元素添加在刚刚迭代器的位置
(代码补充 )
b: 集合遍历,集合修改(size()和get())
元素添加在集合的末尾
(代码补充)
(6)常见数据结构
A: 栈 先进后出
B: 队列 先进先出
C: 数组 查询快,增删慢
D: 链表 查询吗,慢,增删快
(7)List的子类特点(面试题)
ArrayList
底层数据结构是数组,查询快,增删慢。
线程不安全,效率高。
Vector
底层数据结构是数组,查询快,增删慢。
线程安全,效率低。
LinkedList
底层数据结构是链表,查询慢,增删快。
线程不安全,效率高。
到底使用谁呢?看需求?
分析:
要安全吗?
要:Vector(即使要,也不适用这个,后面再说)
不要:ArrayLIst或者LinkedList
查询多:ArrayList
增删多:LinkedList
都不知道选啥的时候,选ArrayList。