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

分块(chunked) vs 滑动窗口(windowed)

在 Kotlin 中,chunked()(分块)和 windowed()(滑动窗口)都是用于将集合拆分成子集合的方法,但它们的工作方式和应用场景不同


chunked()(分块)

  • 含义:将集合划分为一个个不重叠的子块(chunk),每个子块长度相等(最后一个块可能不足)。

  • 特点无重叠一步跳跃一个块

  • 函数签名fun <T> Iterable<T>.chunked(size: Int): List<List<T>>

示例:

val list = listOf(1, 2, 3, 4, 5, 6, 7)
val chunks = list.chunked(3)
println(chunks) // 输出: [[1, 2, 3], [4, 5, 6], [7]]

windowed()(滑动窗口)

含义:使用一个窗口在集合上滑动,可以重叠,可以设置滑动的步长。特点:可重叠、可定步长、可以控制是否包含不足窗口长度的子集合。函数签名:
    fun <T> Iterable<T>.windowed(size: Int,step: Int = 1,partialWindows: Boolean = false
): List<List<T>>

示例 1:默认滑动步长为 1(有重叠)

val list = listOf(1, 2, 3, 4, 5)
val windows = list.windowed(3)
println(windows) // 输出: [[1, 2, 3], [2, 3, 4], [3, 4, 5]]

示例 2:设置步长为 2(可能不重叠)

val windows = list.windowed(3, step = 2)
println(windows) // 输出: [[1, 2, 3], [3, 4, 5]]

示例 3:保留不足窗口大小的部分(partialWindows

val windows = list.windowed(3, step = 2, partialWindows = true)
println(windows) // 输出: [[1, 2, 3], [3, 4, 5], [5]]

📌 总结对比:

特性chunked()windowed()
子集合是否重叠❌ 不重叠✅ 可重叠
步长控制❌ 不可指定步长✅ 可指定步长 step
不足长度是否保留✅ 自动保留最后一组✅ 需设定 partialWindows = true
使用场景分组处理(如分页)滑动窗口分析(如模式识别、时间序列)
http://www.lryc.cn/news/589838.html

相关文章:

  • 开源模型应用落地-qwen模型小试-Qwen3-Embedding 模型集成 vLLM 实战解析(二)
  • 产品更新丨谷云科技 iPaaS 集成平台 V7.6 版本发布
  • Grok 系列大模型:xAI 的智能宇宙探秘
  • 使用 CrewAI 进行股票分析:自动化投资决策的新途径
  • 压力测试Apache Bench(ab)
  • Anspire Open暑期上新季 - 第二弹Anspire Browser Agent,开启云端自动化新纪元
  • Go语言自学笔记(2.3-2.6)
  • iOS 性能监控工具全解析 选择合适的调试方案提升 App 性能
  • 【游戏引擎之路】登神长阶(十九):3D物理引擎——岁不寒,无以知松柏;事不难,无以知君子
  • DrissionPage:一款让网页自动化更简单的 Python 库
  • 【BUG】ValueError: Unable to find out axis 2.0 in start_ornt
  • 设计模式之【观察者模式】
  • 单片机(STM32-中断)
  • [2025CVPR-图像检索方向] COBRA:一种用于小样本自适应检索增强模型
  • 实训十一——网络通信原理
  • 震坤行获取商品SKU操作详解
  • LeetCode|Day15|125. 验证回文串|Python刷题笔记
  • C语言基础笔记——位操作
  • 虚幻引擎5 GAS开发俯视角RPG游戏 #06-7:无限游戏效果
  • 使用EF Core修改数据:Update方法与SaveChanges的深度解析
  • 前端性能追踪工具:用户体验的毫秒战争
  • Kiro:亚马逊云发布,革命性AI编程工具!以“规范驱动开发“重塑软件构建范式!
  • es启动问题解决
  • Java数据结构第二十五期:红黑树传奇,当二叉树穿上 “红黑铠甲” 应对失衡挑战
  • 树莓派系统安装
  • GENERALIST REWARD MODELS: FOUND INSIDE LARGELANGUAGE MODELS
  • Java对象的比较
  • 【ArcGISPro】修改conda虚拟安装包路径
  • C++ 计数排序、归并排序、快速排序
  • 图机器学习(10)——监督学习中的图神经网络