作者l314 (红虫)
看板Flash
标题[问题] 请问Vector contain的功能..
时间Mon Sep 6 14:22:09 2010
小弟我需要一个Set, 里面的元素不能重覆,
AS3 目前内建的Collection, 似乎只有Object, Array, Vector, Dictionary.
小弟决定用Vector来实作这个Set,
所以在Add Entry时, 要检查Vector中是否已存在相同的Entry.
(假设Entry 是一个 A Class 的instatnce, 只有x,y 值,
并有一个public equal function, 用来比对两个A Class instance是否相同.)
小弟直觉想找Vector 是否有contain() 这样找元素的function,
发现最类似的是some() 这个function,
但是some()这个function 需要喂call-back function 给它,
小弟在想那不如自己写个contain function如下, 或许效能会比较好?
private var table :Vector.<A>;
public function contain(a:A):Boolean
{
for each (var ele:A in table){
if(ele.equal(a)) return true;
}
return false;
}
还是版上大大有什麽正规的写法可以分享吗?
谢谢..
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 60.251.117.162
1F:→ cjcat2266:写set不要用Array或Vector,用Dictionary 09/11 02:00
2F:→ cjcat2266:因为前者是list结构,後者是binary search tree结构 09/11 02:00
3F:→ cjcat2266:运算contain()结果的复杂度分别是O(n)和O(log(n)) 09/11 02:00
4F:→ cjcat2266:不然自己实作BST结构也OK 09/11 02:01