集合体系(理解)
(1)集合的由来?
我们学习的是面向对象的语言,最基本的单位就是类,使用的时候,最基本的是对象。
而我们如果需要使用多个对象,就必须用能存储多个对象的容器来做。
目前就学过数组。而数组有不能适用变化的操作。
所以,java就提供了一种新的容器:集合。
(2)集合和数组的区别?
A:集合
长度可变
只能存储引用类型
可以存储不同类型的元素
B:数组
长度固定
可以存储基本类型,也可以存储引用类型
存储的是同一种类型的元素
(3)集合体系结构
由于数据结构不同,多个集合类的存储,判断,删除等操作不太一样,
通过不断的向上抽取,最终形成了一个集合继承实现体系结构。
Collection
|--List
|--ArrayList
|--Vector
|--LinkedList
|--Set
|--HashSet
|--TreeSet
3:Collection(掌握)
(1)Collection的功能概述:
A:添加功能
add(Object obj)--(掌握)
addAll(Collection c)--(了解)
B:删除功能
remove(Object obj)--(掌握)
removeAll(Collection c)--(了解)
clear()--(了解)
C:判断元素
contains(Object obj)--(掌握)
containsAll(Collection c)--(了解)
D:遍历功能
Iterator iterator()--(掌握)
E:长度功能
size()--(掌握)
F:交集
retainAll(Collection c)--(了解)
G:转数据
Object[] toArray()--(理解)
(2)案例:
集合操作四部曲:
A:创建集合对象
B:创建元素对象
C:添加元素到集合
D:遍历集合
a:通过集合对象得到迭代器对象
b:通过迭代器对象的hasNext()方法判断是否有元素
c:通过迭代器对象的next()获取元素,并移动到下一个位置
A:Collection存储字符串并遍历
Collection c = new ArrayList();
//String s = "hello";
//c.add(s);
c.add("hello");
c.add("world");
c.add("java");
Iterator it = c.iterator();
while(it.hasNext()) {
String s = (String) it.next();
System.out.println(s);
}
B:Collection存储自定义对象并遍历
Student:省略
name,age
Collection c = new ArrayList();
Student s1 = new Student("aaa",20);
Student s2 = new Student("bbb",30);
Student s3 = new Student("ccc",40);
c.add(s1);
c.add(s2);
c.add(s3);
Iterator it = c.iterator();
while(it.hasNext()) {
Student s = (Student) it.next();
System.out.println(s.getName()+"---"+s.getAge());
}
4:List(掌握)
(1)列表集合。
(2)List集合的特点:
Collection
|--List
元素有序(存储和取出的顺序一致),可以重复
|--Set
元素无序,唯一
(3)List的特有功能:
A:添加功能
add(int index,Object obj)--(理解)
B:删除功能
remove(int index)--(掌握)
C:修改功能
set(int index,Object)--(掌握)
D:获取功能
get(int index)--(掌握)
E:列表迭代器
ListIterator listIterator()--(了解)
(4)案例:
注意:
List集合多了一种遍历方式。普通for循环。
A:List存储字符串并遍历
B:List存储自定义对象并遍历
(5)ListIterator面试题:
A:可以逆向遍历,但是要求先正向遍历。意义不大。一般不用。
B:并发修改异常
a:原因
在使用迭代器遍历元素的时候,不要去使用集合修改集合的元素
b:解决方案
集合遍历,集合修改。
(1)集合的由来?
我们学习的是面向对象的语言,最基本的单位就是类,使用的时候,最基本的是对象。
而我们如果需要使用多个对象,就必须用能存储多个对象的容器来做。
目前就学过数组。而数组有不能适用变化的操作。
所以,java就提供了一种新的容器:集合。
(2)集合和数组的区别?
A:集合
长度可变
只能存储引用类型
可以存储不同类型的元素
B:数组
长度固定
可以存储基本类型,也可以存储引用类型
存储的是同一种类型的元素
(3)集合体系结构
由于数据结构不同,多个集合类的存储,判断,删除等操作不太一样,
通过不断的向上抽取,最终形成了一个集合继承实现体系结构。
Collection
|--List
|--ArrayList
|--Vector
|--LinkedList
|--Set
|--HashSet
|--TreeSet
3:Collection(掌握)
(1)Collection的功能概述:
A:添加功能
add(Object obj)--(掌握)
addAll(Collection c)--(了解)
B:删除功能
remove(Object obj)--(掌握)
removeAll(Collection c)--(了解)
clear()--(了解)
C:判断元素
contains(Object obj)--(掌握)
containsAll(Collection c)--(了解)
D:遍历功能
Iterator iterator()--(掌握)
E:长度功能
size()--(掌握)
F:交集
retainAll(Collection c)--(了解)
G:转数据
Object[] toArray()--(理解)
(2)案例:
集合操作四部曲:
A:创建集合对象
B:创建元素对象
C:添加元素到集合
D:遍历集合
a:通过集合对象得到迭代器对象
b:通过迭代器对象的hasNext()方法判断是否有元素
c:通过迭代器对象的next()获取元素,并移动到下一个位置
A:Collection存储字符串并遍历
Collection c = new ArrayList();
//String s = "hello";
//c.add(s);
c.add("hello");
c.add("world");
c.add("java");
Iterator it = c.iterator();
while(it.hasNext()) {
String s = (String) it.next();
System.out.println(s);
}
B:Collection存储自定义对象并遍历
Student:省略
name,age
Collection c = new ArrayList();
Student s1 = new Student("aaa",20);
Student s2 = new Student("bbb",30);
Student s3 = new Student("ccc",40);
c.add(s1);
c.add(s2);
c.add(s3);
Iterator it = c.iterator();
while(it.hasNext()) {
Student s = (Student) it.next();
System.out.println(s.getName()+"---"+s.getAge());
}
4:List(掌握)
(1)列表集合。
(2)List集合的特点:
Collection
|--List
元素有序(存储和取出的顺序一致),可以重复
|--Set
元素无序,唯一
(3)List的特有功能:
A:添加功能
add(int index,Object obj)--(理解)
B:删除功能
remove(int index)--(掌握)
C:修改功能
set(int index,Object)--(掌握)
D:获取功能
get(int index)--(掌握)
E:列表迭代器
ListIterator listIterator()--(了解)
(4)案例:
注意:
List集合多了一种遍历方式。普通for循环。
A:List存储字符串并遍历
B:List存储自定义对象并遍历
(5)ListIterator面试题:
A:可以逆向遍历,但是要求先正向遍历。意义不大。一般不用。
B:并发修改异常
a:原因
在使用迭代器遍历元素的时候,不要去使用集合修改集合的元素
b:解决方案
集合遍历,集合修改。
迭代器遍历,迭代器修改。
早上换卷评分,错了一道选择:null是字面常量。97分。隔壁又没来。