# SmartList **Repository Path**: xgyharmony/SmartList ## Basic Information - **Project Name**: SmartList - **Description**: 算法优化,作者很懒。 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-10-13 - **Last Updated**: 2025-10-14 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # SmartList 项目文档 ## 项目简介 SmartList 是一个自定义的 Java 集合类,旨在提供一个高效、灵活的列表实现,用于替代标准的 `ArrayList` 和 `LinkedList`。它支持常见的列表操作,并优化了内存和性能表现,适用于大规模数据处理场景。 ## 主要功能 - 实现了 `List` 接口,支持完整的集合操作。 - 支持随机访问 (`RandomAccess`)、克隆 (`Cloneable`) 和序列化 (`Serializable`)。 - 提供高效的插入、访问和混合操作性能。 - 提供性能测试接口,用于对比 `SmartList` 与 `ArrayList`、`LinkedList` 的性能差异。 - 提供性能监控和数据展示接口,便于分析和优化。 ## 项目结构 - `SmartList.java`:核心类,实现了自定义的列表结构和操作方法。 - `PerformanceController.java`:提供 REST 接口用于执行性能测试和获取测试结果。 - `PerformanceService.java`:性能测试服务类,包含插入、访问和混合操作的性能测试方法。 - `PerformanceTest.java`:本地性能测试类,用于手动运行性能对比测试。 - `WebController.java`:前端控制器,提供页面跳转功能。 - `index.html`:前端页面,展示性能测试结果和操作界面。 ## 安装与运行 ### 环境要求 - Java 8 或更高版本 - Maven 3.x - Spring Boot 2.x ### 构建与启动 1. 克隆项目: ```bash git clone https://gitee.com/xgyharmony/SmartList.git ``` 2. 进入项目目录: ```bash cd SmartList ``` 3. 构建项目: ```bash mvn clean package ``` 4. 启动项目: ```bash mvn spring-boot:run ``` ## 使用说明 ### 性能测试接口 - **POST /api/performance/test** 运行性能测试 请求体: ```json { "dataSize": 1000, "testType": "insert", "iterations": 10 } ``` 返回值:测试结果,包括 `ArrayList`、`LinkedList` 和 `SmartList` 的性能数据。 - **GET /api/performance/comparison** 获取性能对比数据(插入、访问、混合操作的平均耗时)。 - **GET /api/performance/smartlist/info** 获取 `SmartList` 的运行时信息,如当前容量、元素数量等。 ### 前端页面 访问 `http://localhost:8080` 可以打开性能测试页面,进行可视化操作和结果查看。 ## 性能测试说明 `SmartList` 通过动态扩容机制和内存优化策略,旨在提供比 `ArrayList` 和 `LinkedList` 更好的性能表现。性能测试主要涵盖以下场景: - **插入性能测试**:测试在列表尾部插入大量数据的耗时。 - **访问性能测试**:测试随机访问元素的耗时。 - **混合操作性能测试**:测试插入和访问混合操作的耗时。 ## 贡献指南 欢迎贡献代码!请遵循以下步骤: 1. Fork 项目。 2. 创建新分支。 3. 提交 Pull Request。 ## 许可证 本项目采用 MIT 许可证。详情请查看 [LICENSE](LICENSE) 文件。