Discussion:
[Java1.4.2] Vector 與 ArrayList 效率問題...
(时间太久无法回复)
小東
2007-01-03 09:46:28 UTC
Permalink
有我數千組至百萬組的資料
每組都是浮點數值,像[a,b,c,d]
請問,在這個情況下我該用
Vector 或著 ArrayList 好呢??
因為我不時要取第某組的a,b,c,d值出來
而且是每秒就要對所有數值取出來n次
因為a,b,c,d = x,y,z,法向量
所以我用jogl畫時,它的display()我有去測過
每秒至少都會跑上n次
而每回就對所有資料取出來畫一次

所以想問一下大大
我該用哪一種好呢
目前數值,只進不出
也就是只add,沒有任何del

我有爬文過了
也有看到有人說Vector是heavy,而arraylist是light
但在取值時arraylist卻比較好取
可以使用(arraylist)((arraylist)x.get(x)).get(x)
而vector就比較麻煩取了..

因為畫點時是在 display() 中
所以如果要用呼叫某個function而用return出來的值畫就太慢了
或者直接在呼叫的function中畫[不可行,因為畫時只能在display()]

所以
想問一下各位大大
在這種情況下我該用哪種比較好
該用麻煩取值法來畫(vector)
還是簡單的畫(arraylist)
而在效率上,哪一個會比較好...

還是我的用法有誤,有更佳的解決方法呢???

--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 59.125.29.5
splin
2007-01-04 10:53:33 UTC
Permalink
今天正好看到這篇文章
http://javaboutique.internet.com/tutorials/testing/

※ 引述《dhon (小東)》之銘言:
: 有我數千組至百萬組的資料
: 每組都是浮點數值,像[a,b,c,d]
: 請問,在這個情況下我該用
: Vector 或著 ArrayList 好呢??
: 因為我不時要取第某組的a,b,c,d值出來
: 而且是每秒就要對所有數值取出來n次
: 因為a,b,c,d = x,y,z,法向量
: 所以我用jogl畫時,它的display()我有去測過
: 每秒至少都會跑上n次
: 而每回就對所有資料取出來畫一次

照這篇文章測試的結果
從頭到尾讀取以ArrayList效率較好

: 所以想問一下大大
: 我該用哪一種好呢
: 目前數值,只進不出
: 也就是只add,沒有任何del

若考慮加入資料, 則都沒有太大的差別

: 我有爬文過了
: 也有看到有人說Vector是heavy,而arraylist是light
: 但在取值時arraylist卻比較好取
: 可以使用(arraylist)((arraylist)x.get(x)).get(x)
: 而vector就比較麻煩取了..
: 因為畫點時是在 display() 中
: 所以如果要用呼叫某個function而用return出來的值畫就太慢了
: 或者直接在呼叫的function中畫[不可行,因為畫時只能在display()]
: 所以
: 想問一下各位大大
: 在這種情況下我該用哪種比較好
: 該用麻煩取值法來畫(vector)
: 還是簡單的畫(arraylist)
: 而在效率上,哪一個會比較好...
: 還是我的用法有誤,有更佳的解決方法呢???

其實我感覺你想問的應該是像LinkedList和ArrayList之間的差別吧

因為Vector跟ArrayList兩者基本上是等價的, 底層也都是以陣列來實作

在不牽扯到同步化的問題時, 用哪個都沒差的

--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.112.28.225

Loading...