100000條數據時:測了4次,分別是9ms/13ms;8ms/6ms;8ms/6ms;8ms/6ms【其中/前爲ArrayList數據,/後爲Vector數據】
1000000條數據時:測了4次,分別是18ms/30ms;18ms/30ms;18ms/30ms;18ms/31ms
10000000條數據時:測了4次,分別是2648ms/911ms;2649ms/915ms;2648ms/886ms;2687ms/891ms
經過測試結果能夠看出,在單線程下的add()函數,ArrayList並無表現出優點,數據量大的時候甚至是劣勢。我猜想,或許是因爲在單線程下,雖然有加鎖釋放鎖的過程,可是這一過程代價很小;且沒有線程等待的過程,所以並無表現出優點。數組
正如你說的,Vector的性能比ArrayList數據多的時候要好,單線程的話,上鎖解鎖的時間能夠忽略,可是,arraylist和vector都是可變數組,當容量不夠的時候,arraylist是增長自身的一半,而vector是增長一倍,從這裏看vector要省不少時間在增長容量上。也許這就是優點所在。函數