集合框架(对象数组的概述和使用)
-
A:案例演示
- 需求:我有5个学生,请把这个5个学生的信息存储到数组中,并遍历数组,获取得到每一个学生信息。
-
Student[] arr = new Student[5]; //存储学生对象 arr[0] = new Student("张三", 23); arr[1] = new Student("李四", 24); arr[2] = new Student("王五", 25); arr[3] = new Student("赵六", 26); arr[4] = new Student("马哥", 20); for (int i = 0; i < arr.length; i++) { System.out.println(arr[i]); }
-
B:画图演示
- 把学生数组的案例画图讲解
- 数组和集合存储引用数据类型,存的都是地址值
集合的由来及集合继承体系图
-
A:集合的由来
- 数组长度是固定,当添加的元素超过了数组的长度时需要对数组重新定义,太麻烦,java内部给我们提供了集合类,能存储任意对象,长度是可以改变的,随着元素的增加而增加,随着元素的减少而减少
-
B:数组和集合的区别
- 区别1 :
- 数组既可以存储基本数据类型,又可以存储引用数据类型,基本数据类型存储的是值,引用数据类型存储的是地址值
- 集合只能存储引用数据类型(对象)集合中也可以存储基本数据类型,但是在存储的时候会自动装箱变成对象
- 区别2:
- 数组长度是固定的,不能自动增长
- 集合的长度的是可变的,可以根据元素的增加而增长
- 区别1 :
-
C:数组和集合什么时候用
* 1,如果元素个数是固定的推荐用数组
* 2,如果元素个数不是固定的推荐用集合 -
D:集合继承体系图
-
基本功能演示
boolean add(E e) //向集合中添加元素 boolean remove(Object o) //从集合中移除指定元素 void clear() //清空所有集合 boolean contains(Object o) //判断是否包含某个元素 boolean isEmpty() //判断该集合是否为空 int size() //获取元素的个数
-
用法
public static void main(String[] args) {
Collection c = new ArrayList();
c.add("a");
c.add("b");
c.add("c");
c.add("d");
//c.remove("b"); //删除指定元素
//c.clear(); //清空集合
System.out.println(c.contains("b")); //判断是否包含
System.out.println(c.isEmpty());
System.out.println(c.size()); //获取元素的个数
System.out.println(c);
}
集合的遍历之集合转数组遍历
- A:集合的遍历
- 其实就是依次获取集合中的每一个元素。
- B:案例演示
- 把集合转成数组,可以实现集合的遍历
- toArray()
package com.heima.collection;
import java.util.ArrayList;
import java.util.Collection;
import com.heima.bean.Student;
public class Demo3_Collection {
public static void main(String[] args) {
//demo1();
Collection c = new ArrayList();
c.add(new Student("张三", 23)); //Object obj = new Student("张三",23);
c.add(new Student("李四", 24));
c.add(new Student("王五", 25));
c.add(new Student("赵六", 26));
Object[] arr = c.toArray(); //将集合转换成数组
for (int i = 0; i < arr.length; i++) {
//System.out.println(arr[i]);
Student s = (Student)arr[i]; //向下转型
System.out.println(s.getName() + "..." + s.getAge());
}
}
public static void demo1() {
Collection c = new ArrayList();
c.add("a");
c.add("b");
c.add("c");
c.add("d");
Object[] arr = c.toArray(); //将集合转换成数组
for(int i = 0; i < arr.length; i++) {
System.out.println(arr[i]);
}
}
}
Collection集合的带All功能测试
boolean addAll(Collection c)
boolean removeAll(Collection c)
boolean containsAll(Collection c)
boolean retainAll(Collection c)
集合的遍历之迭代器遍历
- A:迭代器概述
- 集合是用来存储元素,存储的元素需要查看,那么就需要迭代(遍历)
- B:案例演示
- 迭代器的使用
package com.heima.collection;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Iterator;
import com.heima.bean.Student;
public class Demo5_Iterator {
public static void main(String[] args) {
Collection c = new ArrayList();
c.add(new Student("张三", 23)); //Object obj = new Student("张三",23);
c.add(new Student("李四", 24));
c.add(new Student("王五", 25));
c.add(new Student("赵六", 26));
//获取迭代器
Iterator it = c.iterator();
while(it.hasNext()) { //判断集合里是不是已经没有元素了
//System.out.println(it.next());
Student s = (Student)it.next(); //向下转型
System.out.println(s.getName() + "..." + s.getAge());
}
}
}