我看现在很多人说都不用vector了
用什么来代替?具体说明下,谢谢
用什么来代替?具体说明下,谢谢
解决方案 »
- 设计模式讨论
- java类BufferedReader类的readLine()方法
- 在installanyanywhere中能运行并安装MsSql2000吗?
- 用LUCENE做的索引 翻页到某一个页面就出现错误java.lang.outofMemoryError
- javascipt 文件上传 出现access is denied 该怎么解决
- Thinking In Java 3的配套光盘内容是什么?哪里可下载?我的给丢了!!5555~
- 问一下算法的问题
- 接口的使用???
- 救命!!
- 客户端 不能发送信息到服务器端?(在SOCKET)请看看下面这段程序有什么错?----客户端的发送信息服务器端收不了!
- JAVA为什么放弃C的多继承
- 简单的字符串剪切
楼主【MattHgh】截止到2008-06-27 11:05:41的历史汇总数据(不包括此帖):
发帖数:50 发帖分:1244
结贴数:49 结贴分:1224
未结数:1 未结分:20
结贴率:98.00 % 结分率:98.39 %
值得尊敬
2.Vector类的所有方法是同步式的方法。在用多线程访问Vector对象时用Vector是一个很好的办法。但更多时候我们只是用单线程来访问对象,如果用Vector,那么效率很低。而ArrayList和array的方法就不属于同步方法。所以在不需要同步的时候,更多时候用的是ArrayList和array。
这个方法,list是线程安全的,但是,它的Iterator不是线程安全的.所以在迭代时用synchronized(list){}块来包围迭代结构.其他的不知道.
如果是多线程就不用ArrayList和array,用Vector吧
ArrayList<String> strlist = new ArrayList<String>();
strlist.add("test string 1");
//其它操作...
如果突然发现自己的 strlist 需要多线程并发访问同步保护,你只需:
ArrayList<String> strlist = Collections.synchronizedList(new ArrayList<String>());
改这一处。