C cty901 Unregistered / Unconfirmed GUEST, unregistred user! 2009-02-09 #1 请问用ListView如何快速的过滤掉重复的信息.如ListView中有10多万个数据项,里面有很多是相同的数据项,如何可以用最快的速度将相同的数据项删除掉.我的Listview中不是数据库里的数据,是从外界采集的数据,但又要求不能重复。就没法用select distinct来弄了。
请问用ListView如何快速的过滤掉重复的信息.如ListView中有10多万个数据项,里面有很多是相同的数据项,如何可以用最快的速度将相同的数据项删除掉.我的Listview中不是数据库里的数据,是从外界采集的数据,但又要求不能重复。就没法用select distinct来弄了。
Z zkktom Unregistered / Unconfirmed GUEST, unregistred user! 2009-02-09 #2 1、创建临时表操作可以吗?2、lv上先排序,再删除,这种比较麻烦!
D dmzn Unregistered / Unconfirmed GUEST, unregistred user! 2009-02-09 #3 用ListView显示10多万的数据,显然是不能用Items.Add这样传统的方法加载的,能把界面给拖死.使用OwnerData的话,数据是内存中构建的,只要算法不是很差,依现在CPU的速度,合并同类项问题不大.
用ListView显示10多万的数据,显然是不能用Items.Add这样传统的方法加载的,能把界面给拖死.使用OwnerData的话,数据是内存中构建的,只要算法不是很差,依现在CPU的速度,合并同类项问题不大.
地 地质灾害 Unregistered / Unconfirmed GUEST, unregistred user! 2009-02-09 #4 建议使用哈希表存储数据 listview显示使用虚拟填充。
C cty901 Unregistered / Unconfirmed GUEST, unregistred user! 2009-02-09 #5 谢谢几位的建议,但我还有些不明:to zkktom: 我的listview没有连接任何数据源,不知道你说的临时表是怎样操作呢?另外用lv先排序然后再删除这种方法我试过了,效率很低。。。to dmzn: 我这个程序的数据不是一次添加完成的,是从外部一次10~20多条这样逐步获取过来添加进去累计起来的,半个小时左右数据就累积到了2,30W条,现在的问题就是如何让这些数据不重复添加且要保持效率。。。因为不是一次性获取的。to 地质灾害: 哈希表我之前没用到过,能否贴下代码或描述一下思路?另外你说的虚拟填充是不是Virtual ListView???
谢谢几位的建议,但我还有些不明:to zkktom: 我的listview没有连接任何数据源,不知道你说的临时表是怎样操作呢?另外用lv先排序然后再删除这种方法我试过了,效率很低。。。to dmzn: 我这个程序的数据不是一次添加完成的,是从外部一次10~20多条这样逐步获取过来添加进去累计起来的,半个小时左右数据就累积到了2,30W条,现在的问题就是如何让这些数据不重复添加且要保持效率。。。因为不是一次性获取的。to 地质灾害: 哈希表我之前没用到过,能否贴下代码或描述一下思路?另外你说的虚拟填充是不是Virtual ListView???
地 地质灾害 Unregistered / Unconfirmed GUEST, unregistred user! 2009-02-10 #7 哈希表这种常见的数据结构你不会google?TListView本身就支持虚拟填充。
D dinglj1760 Unregistered / Unconfirmed GUEST, unregistred user! 2009-02-10 #8 用虚表+HashList来完成。在哈希表中进行排序,重复的直接删除。LV只是展示,后台跟哈希表挂接即可。
S smlabc Unregistered / Unconfirmed GUEST, unregistred user! 2009-02-10 #9 OwnerData=true;设置Items.CountOnData填充数据
C cty901 Unregistered / Unconfirmed GUEST, unregistred user! 2009-02-10 #10 再次感谢各位的帮助,我用StringList结合ListView解决了,我是从vb转型到delphi过来的菜鸟,其间又断断续续,所以delphi还不是很熟悉,再向地质灾害请教一下TListView的虚拟填充。。。希望贴一下示例代码,谢谢了先!
再次感谢各位的帮助,我用StringList结合ListView解决了,我是从vb转型到delphi过来的菜鸟,其间又断断续续,所以delphi还不是很熟悉,再向地质灾害请教一下TListView的虚拟填充。。。希望贴一下示例代码,谢谢了先!