java集合类的框架体系

发布于:2024-10-17 ⋅ 阅读:(13) ⋅ 点赞:(0)

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)

在这里插入图片描述

在这里插入图片描述

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