Java 集合框架提供了一组接口和类,以实现各种数据结构和算法。
例如,集合框架的linkedList类提供了双向链接列表数据结构的实现。
A:集合的由来
数组长度是固定,当添加的元素超过了数组的长度时需要对数组重新定义,太麻烦,java内部给我们提供了集合类,能存储任意对象,长度是可以改变的,随着元素的增加而增加,随着元素的减少而减少,集合的本质就是一个动态数组。
B:数组和集合的区别
区别1 :
数组既可以存储基本数据类型,又可以存储引用数据类型,基本数据类型存储的是值,引用数据类型存储的是地址值
集合只能存储引用数据类型(对象)集合中也可以存储基本数据类型,但是在存储的时候会自动装箱变成对象
区别2:
数组长度是固定的,不能自动增长
集合的长度的是可变的,可以根据元素的增加而增长
C:数组和集合什么时候用
1,如果元素个数是固定的推荐用数组
2,如果元素个数不是固定的推荐用集合
集合框架的接口 Java集合框架提供了各种接口。这些接口包括几种对集合执行不同操作的方法。
Java Collection(集合) 接口
Collection接口是集合框架层次结构的根接口。
Java没有提供直接实现Collection接口,但是像提供其子接口List,Set和Queue的实现。
集合框架 与 Collection接口人们经常会在集合框架和Collection接口之间感到困惑。
Collection接口是集合框架的根接口。 该框架还包括其他接口:Map和Iterator。 这些接口也可能具有子接口。
Collection 接口的子接口
如前所述,Collection接口包括由Java类实现的子接口。
Collection接口的所有方法也都存在于其子接口中。
下面三种接口是Collection接口的子接口:
1、List 接口
List接口是一个有序的集合,它允许我们像数组一样添加和删除元素。
2、Set 接口
Set接口允许我们将元素存储在不同的集合中,类似于数学中的集合。它不能有重复的元素。
3、Queue 接口
当我们要以先进先出的方式存储和访问元素时,可以使用Queue接口。
Java Map 接口
在Java中,Map接口允许元素以键/值对的形式存储。键是唯一的名称,可用于访问map中的特定元素。而且,每个键都有一个与之关联的值。
Java Iterator 接口
在Java中,Iterator迭代器接口提供了用于访问集合元素的方法。
为什么使用集合框架?
Java集合框架提供了可以直接使用的各种数据结构和算法。这有两个主要优点:
我们不需要手动编写代码来实现这些数据结构和算法。
随着集合框架的高度优化,我们的代码将更加高效。
此外,集合框架允许我们对特定类型的数据使用特定的数据结构。这里有一些实例,
如果我们希望我们的数据是唯一的,那么我们可以使用集合框架提供的Set接口。
要以键/值对的形式存储数据,可以使用Map接口。
ArrayList类提供可调整大小的数组的功能。
示例:ArrayList集合类
让我们以collections框架的ArrayList类为例。
本ArrayList类允许我们创建可调整大小的数组。该类实现List接口(Collection接口的子接口)。
//Collections框架在java.util包中定义
import java.util.ArrayList;
class Main {
public static void main(String[] args){
ArrayList animals = new ArrayList<>();
//添加元素
animals.add("Dog");
animals.add("Cat");
animals.add("Horse");
System.out.println("ArrayList: " + animals);
}
}
//输出 ArrayList: [Dog, Cat, Horse]



