当前位置: 首页 > web >正文

Java Collection(集合) 接口

Date: 2025-05-21 20:21:32 author: lijianzhan

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** */
  1. 在Java中,List接口是一个有序的集合,它允许我们按顺序存储和访问元素:
    为了使用List接口的功能,我们可以使用以下类:
    1.数组列表(ArrayList类)
    2.链表(LinkedList类)
    3.向量(vector类)
    4.堆栈(Stack类)

(1)List 接口的实现类

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 接口的实现类

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<>();//将元素添加到 LinkedList2linkedList2.add("Dog");linkedList2.add("Cat");linkedList2.add("Horse");System.out.println("linkedList2: " + linkedList2);//使用索引添加元素到 LinkedList2linkedList2.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(", ");}}
}
输出结果示例:

在这里插入图片描述

  1. Set集合不能包含重复的元素:
    为了使用Set接口的功能,我们可以使用以下类:
    1.HashSet
    2.LinkedHashSet
    3.EnumSet
    4.TreeSet
    Set 接口的实现类:
    (1)HashSet
import java.util.HashSet;
import java.util.Set;class Main {public static void main(String[] args){/** HashSet:*  1.基于哈希表实现,无序,插入/查询时间复杂度为 O(1)*  2.依赖 hashCode() 和 equals() 方法判断元素是否重复。*/// 创建setSet<Integer> setList = new HashSet<>();setList.add(10);// 重复元素会被忽略setList.add(10);System.out.println(setList);}
}

代码运行结果:
在这里插入图片描述

(2)TreeSet

import java.util.TreeSet;class Main {public static void main(String[] args){/** TreeSet:*  1.基于红黑树实现,自然排序或自定义排序,插入/查询时间复杂度为 O(log n)*  2.元素必须实现 Comparable 接口或传入 Comparator*/// 创建TreeSetTreeSet<String> treeSet = new TreeSet<>();treeSet.add("Banana");treeSet.add("Apple"); // 自动按字母顺序排序System.out.println(treeSet);}
}

代码运行结果:
在这里插入图片描述
总结:Java 集合框架是处理数据的核心工具,能够理解其接口和实现类的特性,掌握集合的使用可以高效的编程。

http://www.xdnf.cn/news/7867.html

相关文章:

  • Xilinx 7Series\UltraScale FPGA MultiBoot Fallback
  • bi工具是什么意思?bi工具的主要功能有哪些?
  • Spark SQL 原理与开发
  • transformer归一化层优化:深度解读 RMSNorm (Root Mean Square Layer Normalization,均方根层归一化)
  • Git 提交大文件 this exceeds GitHub‘s file size limit of 100.00 MB
  • MCP和 AI agent 有什么区别和联系
  • 什么是 Agent 的 Message
  • 现代数据库系统的九大类别解析
  • Socket编程——TCP
  • 振动分析 - 献个宝
  • AI人工智能——Matplotlib绘制各种数据可视化图表的基础方法
  • ThinkPHP 根据路由文件获取路由列表
  • Python60日基础学习打卡D32
  • 如何使用两块硬盘作为 Ubuntu24 的系统盘,实现坏掉一块不影响系统运行。
  • 变电站综合自动化系统
  • 多技术栈 iOS 项目的性能调试实战:从 Flutter 到 Unity(含 KeyMob 工具实测)
  • WPF MVVM Community Toolkit. Mvvm 社区框架
  • 万物智联,重塑未来:鸿蒙操作系统的实战突破与生态崛起
  • 8 种快速易用的Python Matplotlib数据可视化方法
  • 大语言模型 17 - MCP Model Context Protocol 介绍对比分析 基本环境配置
  • Azure 应用服务中的异常处理、日志记录和通知:综合指南
  • symbol【ES6】
  • JAVA SE 多线程(下)
  • Access链接Azure SQL
  • 阿里云ecs 8核 16G 内存 装有redis6 分配了3G内存,和2个tomcat 每个tomcat 4G 服务器反应迟钝,如何确认不是redis的问题
  • C++之内存分配new与 delete
  • React--函数组件和类组件
  • DL00987-基于深度学习YOLOv11的红外鸟类目标检测含完整数据集
  • 鸿蒙UI开发——实现一个上拉抽屉效果
  • SQL数据处理流程