1.集合的好处
相比数组,他可以存储多种类型的元素,并且可以动态新增;


2. 集合分类


3.Collection接口
3.1常用方法

3.2迭代器-遍历
collection接口继承了Interable接口,collection的子类可以使用迭代器;

注意事项:

可以使用"itit"快速生成while()循环

3.3遍历方式2–for循环增强


快捷键大写的“I”可以直接快速生成一个增强版for循环
4.List接口

4.1 List常用方法
4.2List的三种遍历方式

4.4 程序:List排序练习

import java.util.Iterator;
import java.util.List;
import java.util.Vector;
public class ListInterable_Exercise {
public static void main(String[] args) {
List list = new Vector();
list.add(new Book3("《红楼梦》",25.2,"曹雪芹"));
list.add(new Book3("《水浒传》",45.2,"施耐庵"));
list.add(new Book3("《西游记》",23.2,"吴承恩"));
System.out.println("===按价格排序前===");
Iterator iterator = list.iterator();
while (iterator.hasNext()) {
Book3 book = (Book3) iterator.next();
System.out.println(book);
}
sort(list);
System.out.println("===按价格排序后===");
iterator = list.iterator();
while (iterator.hasNext()) {
Book3 book = (Book3) iterator.next();
System.out.println(book);
}
}
public static void sort(List list){
//实现数组元素的冒泡排序
int listSize = list.size();
for(int i=0;i<listSize-1;i++){
for(int j=0;j<listSize-i-1;j++){
Book3 bookJA = (Book3) list.get(j);
Book3 bookJB = (Book3) list.get(j+1);
if(bookJA.price>bookJB.price){
list.set(j,bookJB);
list.set(j+1,bookJA);
}
}
}
}
}
class Book3{
String name;
Double price;
String author;
public Book3(String name, Double price, String author) {
this.name = name;
this.price = price;
this.author = author;
}
public Book3() {
}
@Override
public String toString() {
return "Book3{" +
"name='" + name + '\'' +
", price=" + price +
", author='" + author + '\'' +
'}';
}
}
5.ArrayList类

6.vector类

(1)ArrayList和vector的底层数组扩容机制对比

7. LinkList类


8.ArrayList和LinkList对比

9.Set接口

注:虽然添加的顺序和取出的顺序不一致,但取出的顺序只会有一个
9.1常用方法

10.Set接口实现类—HashSet类

(1)HashSet不能添加相同的元素

注意这里new 出来的两个内容是在堆中不同位置的;
11.程序:HashSet最佳实践

用重写equals() and hashCode()方法来实现



12.LinkedHashSet类—HashSet子类


13.Map接口
(1 )常用方法

(2)Map的六大遍历方式
14.HashMap类

15.HashTable类

16.集合
17.集合的练习
(1)
(2)


总注:集合这块儿如果只是应用没有很难,但是底层机制很复杂,难理解东西多