Vector与ArrayList,Stringbuffer和StringBuilder和String

一、VectorArrayList讲解

 * 用到了向量Vector 可以参照ArrayList的用法 ,他们用法基本一样。

 * 区别: Vector是线性安全的,还有连个空间的增长长度方式不一样。

 * Vecrot是每次增加原来的一倍,ArrayList是每次增加原来的一半。

二、Stringbuffer和StringBuilder和String

多线程的情况下才需要考虑线程安全问题。比如一个 StringBuilder ,可能被多个线程访问,那么如果没有 synchronized 的话,第一个线程改变了其值,之后又有第二个线程改变了它的值。当切换回第一个线程时,读到的就是第二个线程修改后的值了。

 

如果不考虑多线程, StringBuilder StringBuffer要快。

 

 

 

StringBuffer安全吧

 

 

果然是StringBuffer。这样的话这段代码就不太好了…… 

首先,如果你使用的JDK版本在1.5或以上的话,StringBuffer已经不推荐使用了,由StringBuilder所替代。后者的性能跟更好一些。 

其次,你在拼接完字符串之后,如果在实际代码里就跟问题里给出的代码一样,紧接着就做String.split()的话,那就浪费了。用实现了List接口的容器(ArrayList或者LinkedList)来保存中间结果不就好了么,没有必要拼接起来再分开 

Java代码    收藏代码
  1. ArrayList<Double> tempList = new ArrayList<Double>();  
  2. while (it.hasNext()) {  
  3.   Object[] obj = (Object[])it.next();  
  4.   tempList.add(Double.parseDouble(obj[2].toString()));  
  5.   // 不知道obj[2]里原本是什么,如果是double的话那直接强制转换类型就好了  
  6. // 取得记录  
  7.   
  8. double[] dArray = new double[tempList.size()];  
  9. for (int i = 0; i < dArray.length; ++i) {  
  10.     dArray[i] = tempList.get(i);  
  11. // 得到一行数据对应的double数组  


当然如果你拼接起来是有别的用途,例如说存到数据库或者存到文本文件的话,那拼接成字符串也不是不行…… 

然后double[][]数组的意义。从你的代码看,你是想把一个一维的double数组硬塞到一个二维的double数组里(你的代码里虽然定义了一个len*len的矩阵,却只向其第一行填充了值)。请问你确定这么做是符合你的要求的么?JFreeChart的CategoryDataset需要的数据到底是什么,恐怕你得自己查一下文档去了解一下。有个朋友以前做过一个作业用过JFreeChart的XYPlot,可以看看他是怎么用数据的:http://ravenex.iteye.com/blog/175557(JFreeChart相关的代码在那帖的附件里)

 

<!--EndFragment--> 

 

<!--EndFragment-->
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值