Cangjie std.collection 集合库全解析:数据结构、迭代器函数与实战示例
人工智能AI 技能文档开发工具【免费下载链接】DocAgent项目地址https://gitcode.com/Cangjie-SIG/DocAgent点击查看免费下载std.collection是 Cangjie 标准库中提供常见数据结构高效实现、抽象接口定义以及集合操作通用函数的包。它覆盖了列表、双端队列、栈、队列、哈希表、哈希集合、红黑树映射与有序集合等日常开发中最常用的容器类型并配套一套可直接作用于任意Iterable的管道式集合操作函数如filter、map、fold、zip等。阅读本篇后你将能够按需选型容器、理解各实现的时间复杂度与扩容策略并直接使用文中示例快速上手 Cangjie 集合编程。包定位std.collection 提供什么根据包概述文档std/collection/collection_package_overview.mdcollection 包提供了三大类能力常见数据结构的高效实现以具体类class形式提供例如ArrayList、LinkedList、HashMap、HashSet、TreeMap、TreeSet、ArrayDeque、ArrayQueue、ArrayStack等相关抽象接口的定义以接口interface形式定义统一的操作契约例如List、Map、Set、Queue、Stack、Deque以及只读变体ReadOnlyList、ReadOnlyMap、ReadOnlySet等集合类型中常用的函数功能面向迭代器的通用函数例如all、any、map、filter、fold、reduce、zip、collect*系列转换函数等。一个需要特别注意的边界是collection 包提供的所有集合类型都不支持并发安全。从源码结构看ConcurrentModificationException的存在正是为了在检测到不同步的并发修改时及时暴露问题见 std/collection/collection_package_api/collection_package_exception.md。如果业务场景需要并发安全的集合应使用标准库中单独的并发集合包。数据结构实现总览std/collection/readme.md将包内全部容器分为数据结构实现与集合操作函数两大类。下表完整列出容器类型及其原型与说明名称原型说明DequeTinterfaces DequeT双端队列具有队列和栈特性允许在两端进行插入和删除操作。ListTinterfaces ListT提供对索引友好的列表操作。MapK, Vinterfaces MapK, V提供一种将键映射到值的方式。MapEntryViewK, Vinterfaces MapEntryViewK, V键值对集合中某个 Key 的视图。OrderedMapK, Vinterfaces OrderedMapK, V有序映射。OrderedSetTinterfaces OrderedSetT有序集合。QueueTinterfaces QueueT队列遵循先进先出FIFO原则。ReadOnlyListTinterfaces ReadOnlyListT定义对列表的只读操作。ReadOnlyMapK, Vinterfaces ReadOnlyMapK, V只读映射。ReadOnlySetK, Vinterfaces ReadOnlySetK, V只读集合。SetTinterfaces SetT不包含重复元素的集合。StackTinterfaces StackT栈具有后进先出LIFO特点。EquatableCollectionTinterfaces EquatableCollectionT定义了可以进行比较的集合类型。ArrayDequeTclass ArrayDequeT基于数组实现的双端循环队列支持两端插入和删除。ArrayListTclass ArrayListT变长的连续数组适合存储数量不确定或需按运行时条件动态调整大小的数据。ArrayQueueTclass ArrayQueueT基于数组实现的循环队列只允许尾部插入、头部删除。ArrayStackTclass ArrayStackT基于数组实现的栈先进后出只能在顶部插入和删除。LinkedListTclass LinkedListT链表结构可动态添加或删除元素而不必移动其他元素。HashMapK, Vclass HashMapK, V哈希表存储键值对可根据键快速访问值。HashSetTclass HashSetT基于哈希表实现的集合插入、删除、查找高效。TreeMapK, Vclass TreeMapK, V基于红黑树实现的有序映射表元素按自然顺序或自定义顺序排序。TreeSetTclass TreeSetT基于 TreeMap 实现的有序集合自动排序、去重。HashMapIteratorK, Vclass HashMapIteratorK, V主要实现 HashMap 的迭代器功能。LinkedListNodeTclass LinkedListNodeTLinkedListT 上的节点。ConcurrentModificationException(false)并发修改异常类。接口层面的完整签名与每个方法的语义说明见 std/collection/collection_package_api/collection_package_interface.md类层面的构造器、属性、方法与运算符重载说明见 std/collection/collection_package_api/collection_package_class.md。接口体系从只读到可写的继承层次从接口文档的源码结构可以清晰看到 collection 包的接口设计遵循只读能力 → 可写能力的递进分层只读一族ReadOnlyList、ReadOnlyMap、ReadOnlySet 只提供查询能力例如get、contains、keys()、values()、subsetOf()可写一族List 继承ReadOnlyList新增add、remove、removeIf、clear及下标赋值运算符[]Map 继承ReadOnlyMap新增add、remove、replace、addIfAbsent、entryView等Set 继承ReadOnlySet新增add、remove、retain、clear等顺序增强OrderedMap 在Map基础上增加first、last属性与removeFirst、removeLast、forward(mark, inclusive!)、backward(mark, inclusive!)定向遍历方法OrderedSet 同理结构契约Deque 提供addFirst/addLast/removeFirst/removeLast与first/last属性Queue 提供add/peek/removeStack 同样提供add/peek/remove但语义是栈顶EquatableCollection 提供单元素与批量contains判定。值得注意的是 MapEntryView 的value是可写属性设置非空 value 时若视图对应的键不存在会在原始映射中新增元素设置为None则会删除当前 Entry删除后视图仍可继续使用。这是实现通过视图读写映射的关键入口。树形容器特有的 forward / backward 定向遍历OrderedMap与OrderedSet提供的forward(mark, inclusive!)与backward(mark, inclusive!)是面向有序容器的定向迭代能力对应实现见 TreeMap 与 TreeSetforward(mark, inclusive!)从第一个键元素大于等于 mark 的节点开始按升序遍历到最后一个元素inclusive!决定当 mark 恰好命中首个元素时是否包含该起点默认为truebackward(mark, inclusive!)从第一个键元素小于等于 mark 的节点开始按降序遍历到第一个元素。类实现深度剖析底层原理与关键行为ArrayList可变长连续数组ArrayListT实现 List 接口是一种线性动态数组类定义见 std/collection/collection_package_api/collection_package_class.md。与定长Array不同它创建时无需指定大小插入时若容量不足会自动重新分配更大的内存并复制原有元素。文档明确提示动态数组可节省内存并按需扩容但重新分配内存时可能带来性能下降因此需要谨慎权衡使用场景。关键行为要点默认容量init()构造默认容量为 16init(capacity)可指定初始容量容量为负时抛IllegalArgumentException批量构造支持init(elements: CollectionT)、init(size, initElement)按函数规则生成 size 个元素以及静态工厂ArrayList.of(ArrayT)扩容策略reserve(additional)在剩余容量不足时取原始容量的 1.5 倍向下取整与additional 已使用容量两者中的较大值进行扩容additional小于等于 0 或剩余容量充足时不发生扩容当additional 已使用容量超过Int64.Max时抛OverflowException索引访问get(index)越界时返回None安全而下标运算符list[index]越界时抛IndexOutOfBoundsException严格范围操作slice(range)与remove(range)支持RangeInt64切片/删除若 range 为hasEnd false的构造实例end 不生效切片会取到原数组最后一个元素step不等于 1 时抛IllegalArgumentException切片返回全新对象与原列表无引用关系条件删除removeIf(predicate)删除所有满足条件的元素若 predicate 内部对列表进行了增删改会抛ConcurrentModificationException排序 API 已标记废弃sortBy、sort()、sortDescending()等标注为deprecated文档建议改用 sort 包中的sort函数见 std/sort/sort_package_api/sort_package_funcs.md扩展接口为ArrayList扩展了EquatableArrayListT对应位置元素相等即相等、ToString输出形如[elem1, elem2, elem3]。ArrayDeque / ArrayQueue / ArrayStack基于数组的线性容器三个类均以数组为底层存储区别在于操作约束ArrayDequeT实现DequeT见 ArrayDeque_class.md可调整大小的循环数组实现支持两端插入删除默认容量 8每次扩容默认增加 50%无扩容时插入、删除、查看的时间复杂度为 O(1)。removeFirst/removeLast在空队列时返回NoneArrayQueueT实现QueueT循环队列尾部插入add、头部删除remove、只读查看peek空队列时peek/remove返回None默认容量同为 8扩容逻辑与 ArrayDeque 一致ArrayStackT实现StackT数组 栈顶指针实现仅支持在顶部插入删除默认容量 8reserve在剩余空间不足时扩容至size additionaliterator()的遍历顺序即出栈顺序toArray()同样按出栈顺序输出。LinkedList双向链表与节点操作LinkedListT实现双向链表类定义见 LinkedList_class.md每个节点含前驱/后继指针支持双向遍历。文档特别强调两点迭代器失效规则对集合中元素的修改不会使迭代器失效只有添加和删除元素会使迭代器失效节点悬空风险通过firstNode/lastNode/nodeAt(index)时间复杂度 O(n)获得的LinkedListNode若对应节点被链表删除会变成悬空节点对其任何操作访问next/prev/value都会抛IllegalStateException。链表还提供addFirst/addLast返回新节点、addBefore/addAfter在指定节点前/后插入、remove(node)、splitOff(node)从指定节点处将链表一分为二node 成为新链表首节点、forward(node)/backward(node)从节点向尾部/头部遍历等节点级操作。HashMap哈希表实现HashMapK, V要求键满足K : Hashable EquatableK实现Map接口见 HashMap_class.md。文档描述其原理将数据映射到动态数组哈希表每个元素按哈希值定位查找、插入、删除的时间复杂度通常为 O(1)由于底层数组大小动态变化哈希表不能保证元素顺序不可变。默认初始容量为 16add(key, value)对已存在的键返回旧值Option封装键不存在返回None支持addIfAbsent键不存在才添加、replace键存在才替换返回旧值、removeIf遍历删除满足条件的键值对predicate 内改动容器会抛ConcurrentModificationExceptionkeys()返回EquatableCollectionKvalues()返回CollectionVtoArray()返回键值对数组下标运算符map[key]读取键不存在时抛NoneValueException写入时map[key] value等效于add重复键处理通过数组/集合构造时按迭代器顺序后面的键值对覆盖前面的键值对为HashMap扩展了Equatable键值对完全相等即相等与ToString形如[(k1, v1), (k2, v2), (k3, v3)]。HashSet基于 HashMap 的集合HashSetT要求T : Hashable EquatableT是基于HashMap实现的Set实例见 HashSet_class.md。文档明确指出HashSet 的容量、内存布局、时间性能与 HashMap 完全相同元素无序且不允许重复添加已存在的元素返回false。除常规的增删查改外HashSet 还提供集合代数运算符交集、|并集、-差集返回新HashSetretain(all!: SetT)仅保留与入参集合重复的元素subsetOf(other)判断是否为ReadOnlySet子集removeIf在 predicate 内部改动容器时抛ConcurrentModificationException。TreeMap / TreeSet红黑树支撑的有序容器TreeMapK, V要求K : ComparableK见 TreeMap_class.md基于平衡二叉搜索树文档及包概述均指明为红黑树实现OrderedMap提供有序的键值对存储适合数据库、缓存、查找表等需要有序键值对的场景。iterator()按 Key 从小到大顺序迭代支持forward/backward定向遍历、first/last、removeFirst/removeLastTreeSetT要求T : ComparableT见 TreeSet_class.md基于 TreeMap 实现OrderedSet自动排序且去重同样支持forward/backward、集合代数运算符与subsetOf。HashMapIterator 与并发修改保护HashMapIteratorK, V是 HashMap 的专用迭代器见 HashMapIterator_class.md其next()返回?(K, V)并且是唯一允许在遍历中调用remove()删除next 函数刚返回元素的入口——但该 remove 每次 next 后只能调用一次。迭代器检测到不同步的并发修改时抛ConcurrentModificationException。ConcurrentModificationException见 collection_package_exception.md的典型抛出场景包括使用for-in遍历容器过程中修改容器HashMapIterator.remove()除外使用生命周期较短的视图类型如MapEntryView时其所在容器内容被修改。集合操作函数面向迭代器的函数式工具std/collection/readme.md将包内通用函数完整列出这些函数大多采用先传入参数/谓词返回一个作用于IterableT的函数的柯里化风格便于与 pipeline 表达式|配合。下表为完整清单名称原型说明allT(T) - Bool判断迭代器所有元素是否都满足条件。anyT(T) - Bool判断迭代器是否存在任意一个满足条件的元素。atT(Int64)获取迭代器指定位置的元素越界/为空返回None。collectArrayListT(IterableT)将迭代器转换为ArrayList。collectArrayT(IterableT)将迭代器转换为Array。collectHashMapK, V(Iterable(K, V)) where K : Hashable EquatableK将迭代器转换为HashMap。collectHashSetT(IterableT) where T : Hashable EquatableT将迭代器转换为HashSet。collectStringT(String) where T : ToString将元素实现 ToString 的迭代器拼接为String可指定delimiter!分隔符默认。concatT(IterableT)串联两个迭代器。containsT(T) where T : EquatableT遍历判断是否包含指定元素。countT(IterableT)统计迭代器元素数量。enumerateT(IterableT)获取带索引(Int64, T)的迭代器。filterT((T) - Bool)筛选满足条件的元素。filterMapT, R((T) - ?R)同时进行筛选与映射返回Some视为通过、None视为剔除。firstT(IterableT)获取头部元素为空返回None。flatMapT, R((T) - IterableR)创建带 flatten 功能的映射。flattenT, R(IterableT) where T : IterableR将嵌套迭代器展开一层。foldT, R(R, (R, T) - R)使用指定初始值从左向右折叠计算。forEachT((T) - Unit)遍历所有元素并执行给定操作。inspectT((T) - Unit)每次next()对当前元素执行额外操作不消耗元素。isEmptyT(IterableT)判断迭代器是否为空。lastT(IterableT)获取尾部元素为空返回None。mapT, R((T) - R)创建映射。maxT(IterableT) where T : ComparableT筛选最大元素为空返回None。minT(IterableT) where T : ComparableT筛选最小元素为空返回None。noneT((T) - Bool)判断是否所有元素都不满足条件。reduceT((T, T) - T)以第一个元素为初始值从左向右归并为空返回None。skipT(Int64)跳过前 count 个元素count 为负抛IllegalArgumentException。stepT(Int64)每次next()跳过 count 个元素count 小于等于 0 抛异常。takeT(Int64)取出前 count 个元素count 为负抛异常为 0 返回空迭代器。zipT, R(IterableR)将两个迭代器按位置合并为(T, R)元组长度取决于较短者。函数完整签名与边界行为见 std/collection/collection_package_api/collection_package_function.md。其中几个值得注意的细节skip的边界count 0时相当于不跳过返回原迭代器count 迭代器大小时跳过所有元素返回空迭代器take的边界count 0返回空迭代器count 迭代器大小时取走全部元素返回原迭代器step是步进语义与skip不同每次调用next()都会跳过 count 个元素直到迭代器耗尽collectString的默认分隔符为空字符串示例中展示了用delimiter: 拼接的场景。实战示例从样例看典型用法仓库在 std/collection/collection_package_samples 目录下提供了多个可验证的官方示例均带!-- verify --标记以下选取四个典型场景。1. 迭代器函数 pipeline 管道式操作来自 sample_iterator.md 的示例演示了filter、step、skip、forEach、collectString、contains的组合用法import std.collection.* main() { let arr [-1, 2, 3, 4, 5, 6, 7, 8, 9] arr | filter{a: Int64 a 0} | // filter -1 stepInt64(2) | // [2, 4, 6, 8] skipInt64(2) | // [6, 8] forEachInt64(println) let str arr | filter{a: Int64 a % 2 1} | collectStringInt64(delimiter: ) println(str) println(arr | contains(6_i64)) return 0 }运行结果6 8 3579 true可以看到step步进 2 取 [2,4,6,8]与skip跳过前 2 个得 [6,8]的语义差异、以及collectString指定分隔符的效果一目了然。2. HashMap 的增查删来自 sample_hashmap_get_add_contains.md 与 sample_hashmap_add_remove_clear.mdimport std.collection.* main() { var map: HashMapString, Int64 HashMapString, Int64() map.add(a, 99) // map : [(a, 99)] map.add(b, 100) // map : [(a, 99), (b, 100)] var a map.get(a) var bool map.contains(a) print(a${a.getOrThrow()} ) print(bool${bool.toString()}) map.add(all: [(d, 11), (e, 12)]) // 批量添加 map.remove(d) // 按键删除返回 Option 封装的旧值 map.clear() // 清空 return 0 }运行结果a99 booltrue。注意get返回OptionV需用getOrThrow()解包contains用于键存在性判断。3. ArrayList 的增改查、删除与切片来自 sample_arraylist_add.md、sample_arraylist_get_set.md 与 sample_arraylist_remove_clear_slice.mdimport std.collection.* main() { var list: ArrayListInt64 ArrayListInt64(10) // 容量为 10 list.add(all: [1, 2, 3]) // list: [1, 2, 3] list[1] 120 // 下标写list: [1, 120, 3] var b list.get(2) // b 3 list.add(12, at: 1) // list: [1, 12, 120, 3] list.remove(at: 1) // 删除索引 1 处元素 list.add(all: [1, 2, 3], at: 0) // 从索引 0 批量插入 let r: RangeInt64 1..2 : 1 var sublist: ArrayListInt64 list.slice(r) // sublist: [2, 3] return 0 }运行结果对应示例输出b3,c120,d2b99,g1,m2。这里展示了add(element, at:)指定索引插入、add(all: Collection, at:)批量插入、remove(at:)、slice(range)切片与下标赋值list[i] v的完整用法。4. TreeSet 与 HashSet有序 vs 无序来自 sample_treeset_add_iterator_remove.mdimport std.collection.* main() { var set: TreeSetString TreeSetString() set.add(peach) set.add(banana) set.add(apple) set.add(orange) var itset set.iterator() for (e in itset) { println(e) } set.remove(banana) println(set) return 0 }运行结果有序、去重apple banana orange peach [apple, orange, peach]而 sample_hashset_add_iterator_remove.md 中HashSet的遍历顺序不固定示例输出仅为其中一种可能两者对比可直观理解有序集合与哈希集合的语义差异。使用建议与注意事项综合包文档与类文档使用 collection 包时有以下几点需要留意按语义选型需要随机索引访问选ArrayList频繁在中间增删选LinkedList先进先出选ArrayQueue后进先出选ArrayStack两端操作选ArrayDeque快速键值查找选HashMap需要有序键值对/有序去重集合选TreeMap/TreeSet键与元素的约束HashMap/HashSet要求键/元素实现Hashable EquatableTreeMap/TreeSet要求键/元素实现Comparable。编译器会通过where约束在编译期检查遍历中不要修改容器除HashMapIterator.remove()外遍历过程中对容器增删改会触发ConcurrentModificationException关注扩容开销数组类容器在扩容时存在复制开销扩容策略为原始容量的 1.5 倍向下取整与需求量的较大者对容量敏感的场景可预先通过init(capacity)或reserve预留空间线程安全边界本包所有容器均非并发安全并发场景请使用标准库的并发集合包。完整 API 索引含每个类/接口/异常的 JSON 元数据位于 std/collection/collection_package_index需要查阅精确签名时可直接对照。赞分享人工智能AI 技能文档开发工具【免费下载链接】DocAgent项目地址https://gitcode.com/Cangjie-SIG/DocAgent点击查看免费下载相关推荐仓颉标准库 std.collection 集合包完全指南九大数据结构、接口体系与迭代器操作函数详解仓颉标准库 std.collection 集合包完全指南九大数据结构、接口体系与迭代器操作函数详解 std.collection 是仓颉编程语言标准库中最常用编程语言语言运行时标准库垃圾回收并发编程DocAgent 仓颉文档仓库 std.collection 集合框架深度指南九大数据结构、接口体系与迭代器函数实战DocAgent 仓颉文档仓库 std.collection 集合框架深度指南九大数据结构、接口体系与迭代器函数实战 本文以 DocAgent 仓颉语言文档仓人工智能AI 技能文档开发工具仓颉编程语言 std.collection 集合包详解常用数据结构、接口体系与迭代器高阶函数仓颉编程语言 std.collection 集合包详解常用数据结构、接口体系与迭代器高阶函数 std.collection 是仓颉编程语言标准库std中提文档知识库教程OpenHarmony上一篇terraform-provider-aws 数据源 aws_iam_user_ssh_key 实战读取 IAM 用户 SSH 公钥下一篇Vim 内置 EditorConfig 插件实战指南自动统一代码风格配置与核心实现解析创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关新闻

SpringBoot3+Vue3全栈失物招领系统开发实践

SpringBoot3+Vue3全栈失物招领系统开发实践

1. 项目概述与适用场景失物招领系统作为校园和社区场景中的高频需求应用,结合SpringBoot3和Vue3的技术栈实现,既符合现代企业级开发规范,又具备教学演示价值。这个全栈项目采用前后端分离架构,后端使用SpringBoot3提供RESTful API…

2026/10/14 8:14:51 阅读更多 →
方向阻抗继电器原理与输电线路保护实践

方向阻抗继电器原理与输电线路保护实践

1. 输电线路保护的核心挑战与方向阻抗继电器原理在高压输电线路保护领域,距离保护作为主保护的核心组成部分,其可靠性直接关系到整个电网的安全运行。传统过电流保护在长距离、重负荷线路中往往难以满足选择性要求,而方向阻抗继电器通过测量故…

2026/10/14 8:14:51 阅读更多 →
编程中的反斜杠:转义字符原理与应用详解

编程中的反斜杠:转义字符原理与应用详解

1. 反斜杠符号的基础认知在编程世界里,反斜杠(\)这个看似简单的符号,实际上承担着多种关键职责。第一次在代码中见到它时,我误以为只是个普通的标点符号,直到它在字符串处理中给我制造了无数bug后&#xff…

2026/10/14 8:14:51 阅读更多 →

最新新闻

SpringBoot体育馆预约系统设计与性能优化实践

SpringBoot体育馆预约系统设计与性能优化实践

1. 项目背景与核心价值体育馆场地预约系统是体育场馆数字化管理的核心工具。过去三年我参与过7个同类系统的开发实施,发现传统电话预约和纸质登记方式存在三大痛点:预约冲突频发(平均每周3-5起)、场地利用率不足(高峰时…

2026/10/14 9:06:48 阅读更多 →
USN日志+SQLite重写Everything索引:低内存搜索实现与参数优化

USN日志+SQLite重写Everything索引:低内存搜索实现与参数优化

简介:一份针对 Everything 搜索工具内存占用过高问题的优化源码包,面向遇到同类性能困扰的普通用户及软件开发者。资源基于实际使用近四年的场景,通过调整索引设置——排除系统文件、隐藏文件及特定目录,将索引文件压缩至 60K&…

2026/10/14 9:06:48 阅读更多 →
SpringBoot构建诗词平台:技术实现与传统文化融合

SpringBoot构建诗词平台:技术实现与传统文化融合

1. 项目背景与核心价值 中华诗词作为传统文化瑰宝,在数字化时代面临着传承与传播的新挑战。这个基于SpringBoot的诗词文化交流平台,本质上解决的是三个核心问题:一是经典诗词资源的数字化整合难题,二是诗词爱好者互动交流的渠道缺…

2026/10/14 9:06:48 阅读更多 →
SpringBoot诗词平台开发:智能检索与格律校验实践

SpringBoot诗词平台开发:智能检索与格律校验实践

1. 项目概述 中华诗词文化交流平台是一个基于SpringBoot框架开发的传统文化数字化项目,旨在为诗词爱好者构建集创作、鉴赏、学习、互动于一体的专业社区。这个平台解决了传统诗词文化传播中的三个核心痛点:一是线下交流渠道有限,二是初学者缺…

2026/10/14 9:06:48 阅读更多 →
Android开发:接口设计与数据共享最佳实践

Android开发:接口设计与数据共享最佳实践

1. Android接口与数据共享概述在Android应用开发中,接口设计与数据共享机制是构建复杂应用的基础能力。作为一名有五年Android开发经验的工程师,我经常需要处理不同组件间的通信和数据流转问题。合理的接口设计能让代码更易维护,而高效的数据…

2026/10/14 9:06:48 阅读更多 →
Three.js加载Gltf模型并播放动画

Three.js加载Gltf模型并播放动画

老规矩:初始化相机,场景,渲染器等,这里不过多赘述,详情看上一篇文章。 从0搭建一个3D立体场景:光影与交互全解析-CSDN博客 基本使用 只要在文件中引入这个即可: const loader new GLTFLoad…

2026/10/14 9:05:48 阅读更多 →

日新闻

AnyPS5通用适配层设计:兼容性与性能的工程取舍

AnyPS5通用适配层设计:兼容性与性能的工程取舍

1. 从"AnyPS5"这个名字说起:它到底想解决什么问题第一次看到"AnyPS5"这个标题,我脑子里冒出来的第一个念头是:这大概率是一个围绕"跨平台运行"或者"通用适配"做文章的项目。名字里的"Any"…

2026/10/14 0:00:41 阅读更多 →
Flutter跨平台开发实战:二手交易应用与HarmonyOS适配

Flutter跨平台开发实战:二手交易应用与HarmonyOS适配

1. 项目概述:Flutter跨平台二手交易应用开发作为一名长期从事移动应用开发的工程师,我最近完成了一个基于Flutter框架的二手物品交易平台项目。这个项目最吸引我的地方在于它完美结合了Flutter的跨平台优势与HarmonyOS的生态特性,实现了"…

2026/10/14 0:00:41 阅读更多 →
DFS算法解决飞机降落调度问题实战

DFS算法解决飞机降落调度问题实战

1. 项目背景与核心思路飞机降落问题是一个经典的调度优化场景,也是算法竞赛和面试中的高频题目。这个题目要求我们合理安排多架飞机的降落顺序和时间,确保所有飞机都能安全着陆而不发生冲突。在实际航空管制中,这类问题直接关系到飞行安全和机…

2026/10/14 0:00:41 阅读更多 →

周新闻

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

简介:基于 ARIMA、LSTM、Transformer 等模型的流感时间序列预测 Python 源码,面向计算机相关专业课程设计与期末大作业学生,以及项目实战学习者。内容覆盖预处理、平稳性检验、定阶、残差分析、多模型对比预测的完整时序建模流程,…

2026/10/14 3:30:28 阅读更多 →
影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别 做影刀RPA自动化,十个新手有八个栽在"往输入框里填东西"这件事上:要么填不进去,要么填了一半,要么直接把原来内容追加在后面。这背后的根因&…

2026/10/13 16:22:04 阅读更多 →
影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容 1. 认识影刀:什么场景该用RPA采小说数据 起点中文网的页面结构相对稳定——分类榜单、书籍详情、章节内容三块独立页面,跳转链路清晰。这种场景非常适合影刀自动化&#x…

2026/10/14 3:29:58 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/13 22:01:27 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/13 14:57:39 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/14 7:53:34 阅读更多 →