清泛IT社区

标题: AI2 如何快捷比较两个列表的差异项,然后再根据差异的项去执行更新操作? [打印本页]

作者: App Inventor 2     时间: 2023-12-07 11:40
标题: AI2 如何快捷比较两个列表的差异项,然后再根据差异的项去执行更新操作?
有会员提问,如题。目前TA采用的方案是:遍历2个列表全部执行一遍,程序很卡!

解决思路:
这时,我们就会考虑使用字典来解决这个性能问题了,回顾一下文档中字典的特点:
https://www.fun123.cn/reference/blocks/dictionaries.html
Q:App Inventor 2 什么情况下需要使用字典?
A:列表能完成字典的绝大部分功能,不过字典具有比列表更好的查找性能,因此如果要对数据结构执行大量的操作,建议优先使用字典。

可以看到,字典可以解决查找性能问题。

将一个列表转换为字典,遍历另一个每一个项目在字典中查找,可以找出新增的和已删除的条目。伪代码如下:
列表2转换为字典;遍历列表1;条目不在字典中则是新增项。列表1和2反之,即可找出删除项。


如果结构不动,仅数据变化,如果找出变化条目?
也是类似,字典中找到了比一下值就知道是否变化。主要还是依赖字典查找速度快,来提升性能。










欢迎光临 清泛IT社区 (https://bbs.tsingfun.com/) Powered by Discuz! X3.3