Date: 2025-05-21 20:21:32 author: lijianzhan
Java 集合框架提供了一组接口和类,以实现各种数据结构和算法。
以下是关于 Java 集合的核心内容说明:
java
/**
* Java Collection Framework 说明:
*
* 在 Java 中,集合(Collection) 是一个核心的编程概念,用于存储、管理和操作一组对象。Java 集合框架(Java Collections Framework, JCF)提供了一套标准化的接口和类,使得开发者可以高效地处理数据集合(如列表、集合、队列、映射等)
* Java 集合框架基于接口设计的,并且分为了两大类分别是Collection接口和Map接口
*
* Collection 接口(说明:存储单一元素)特点:
* 下面三种接口是Collection接口的子接口
* 1.List:
* 1.有序排列
* 2.允许重复
* 3.如 ArrayList, LinkedList(ps:LinkedList类提供了双向链接列表数据结构的实现)
* 2.Set:
* 1.无序排列
* 2.不允许重复
* 3.如 HashSet, TreeSet
* 3.Queue:
* 1.队列
* 2.先进先出(FIFO)
* 3.如 LinkedList, PriorityQueue
*
* Map 接口(说明:Map接口允许元素以键/值对(Key-Value)的形式存储。键是唯一的名称,可用于访问map中的特定元素。而且,每个键都有一个与之关联的值)特点:
* 1.键唯一
* 2.值可重复
* 3.如 HashMap, TreeMap
*
* */
- 在Java中,List接口是一个有序的集合,它允许我们按顺序存储和访问元素:
为了使用List接口的功能,我们可以使用以下类:
1.数组列表(ArrayList类)
2.链表(LinkedList类)
3.向量(vector类)
4.堆栈(Stack类)
(1)List 接口的实现类
java
import java.util.ArrayList;
import java.util.List;
class Main {
public static void main(String[] args){
/*
* ArrayList:
* 1.基于动态数组实现
* 2.线程不安全,适用于单线程环境
* 3.可以包含重复的元素
*/
List<Integer> list = new ArrayList<>();
list.add(1);
list.add(2);
list.add(3);
System.out.println("List: " + list);
//从列表中访问元素
int number = list.get(2);
System.out.println("访问元素: " + number);
//使用indexOf()方法
int index = list.indexOf(2);
System.out.println("位置3的元素是 " + index);
//从列表中删除元素
int removedNumber = list.remove(1);
System.out.println("删除元素: " + removedNumber);
}
}
输出结果示例:

(2)List 接口的实现类
java
import java.util.LinkedList;
import java.util.ListIterator;
class Main {
public static void main(String[] args){
/*
* ArrayList:
* 1.基于双向链表实现
* 2.实现了 Deque 接口,可用作队列或栈
* 3.可以包含重复的元素
*/
//创建整数类型的链表
LinkedList<Integer> linkedList = new LinkedList<>();
linkedList.add(1);
linkedList.add(2);
System.out.println("LinkedList: " + linkedList);
//从链表中获取元素
int number = linkedList.get(1);
System.out.print("索引1处的元素: " + number);
//创建字符串类型的链表
LinkedList<String> linkedList2 = new LinkedList<>();
//将元素添加到 LinkedList2
linkedList2.add("Dog");
linkedList2.add("Cat");
linkedList2.add("Horse");
System.out.println("linkedList2: " + linkedList2);
//使用索引添加元素到 LinkedList2
linkedList2.add(0,"Danger");
linkedList2.add(1,"Monkey");
linkedList2.add(2,"Duck");
System.out.println("linkedList2: " + linkedList2);
// 将一个链表添加到另一个链表,新建animals链表
LinkedList<String> animals = new LinkedList<>();
animals.add("Crocodile");
//把 linkedList2 的所有元素都添加到 animals 上
animals.addAll(linkedList2);
System.out.println("Animals: " + animals);
//创建ListIterator对象
ListIterator<String> listIterate = animals.listIterator();
listIterate.add("Dog");
listIterate.add("Cat");
System.out.println("listIterate: " + animals);
// 使用iterator()方法 访问元素
while(listIterate.hasNext()) {
System.out.print(listIterate.next());
System.out.print(", ");
}
}
}
输出结果示例:

- Set集合不能包含重复的元素:
为了使用Set接口的功能,我们可以使用以下类:
1.HashSet
2.LinkedHashSet
3.EnumSet
4.TreeSet
Set 接口的实现类:
(1)HashSet
java
import java.util.HashSet;
import java.util.Set;
class Main {
public static void main(String[] args){
/*
* HashSet:
* 1.基于哈希表实现,无序,插入/查询时间复杂度为 O(1)
* 2.依赖 hashCode() 和 equals() 方法判断元素是否重复。
*/
// 创建set
Set<Integer> setList = new HashSet<>();
setList.add(10);
// 重复元素会被忽略
setList.add(10);
System.out.println(setList);
}
}
代码运行结果:
(2)TreeSet
java
import java.util.TreeSet;
class Main {
public static void main(String[] args){
/*
* TreeSet:
* 1.基于红黑树实现,自然排序或自定义排序,插入/查询时间复杂度为 O(log n)
* 2.元素必须实现 Comparable 接口或传入 Comparator
*/
// 创建TreeSet
TreeSet<String> treeSet = new TreeSet<>();
treeSet.add("Banana");
treeSet.add("Apple"); // 自动按字母顺序排序
System.out.println(treeSet);
}
}
代码运行结果:
总结:Java 集合框架是处理数据的核心工具,能够理解其接口和实现类的特性,掌握集合的使用可以高效的编程。