Vector与ArrayList,Stringbuffer和StringBuilder和String

原创 2015年07月07日 14:59:24

一、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-->

Java中String,StringBuffer,StringBuilder常用方法及使用实例

package stringtest; public class StringOpera { public static void main(String[] args) { Strin...
  • u012768347
  • u012768347
  • 2017年03月12日 16:33
  • 329

Java String为什么是不可变类,StringBuffer与StringBuilder区别

熟悉Java的都知道String类是不可变,但String类为什么设计成不可变类,如何做到不可变没有仔细想过。 String为什么设计成不可变类? 1.Java字符串池的设计方式。     Strin...
  • chenchaofuck1
  • chenchaofuck1
  • 2016年03月10日 15:15
  • 2039

Java基础之String、StringBuffer与StringBuilder的区别及应用场景

1 String、StringBuffer与StringBuilder (1)String 字符串常量; /** Strings are constant; their values cann...
  • chenliguan
  • chenliguan
  • 2016年07月14日 18:35
  • 5875

String,StringBuffer, StringBuilder 的区别是什么?String为什么是不可变的?

本内容是我从各处转载整理得来,是我的学习笔记,如有涉及到版权问题,请给我留言。 或者内容中有不正确的地方,也请各位大神能帮我指出更改,谢谢! 一、区别 1、String是字符串常量,而String...
  • dorapan1987
  • dorapan1987
  • 2015年03月17日 20:36
  • 873

StringBuffer 与 StringBuilder 区别与联系及源码分析

StringBuffer和StringBuilder的共同点: 1、都是用于操作字符串,使用这两个而不使用String的原因是因为String是Final类型,当对字符串操作较多时采用Str...
  • u010854517
  • u010854517
  • 2017年03月08日 10:07
  • 193

StringBuilder和StringBuffer解析(百度面试题优化需要用到的)

StringBuilder是java5及以后提供的API,它不是线程安全的,而StringBuffer是java1.4以前的API,它是线程安全的,所以说StringBuilder的效率更高一些,今天...
  • u012859193
  • u012859193
  • 2014年04月26日 11:15
  • 2249

Java中字符串探索—-String ,StringBuffer ,StringBuilder及字符串缓存池

转载来自:http://www.xuebuyuan.com/403602.html 字符串是编程中应用到最多的一个数据类型,简单实用,但是深入理解它们,会给我们带来更多好处。 字符串缓...
  • shehun11
  • shehun11
  • 2015年09月02日 11:56
  • 461

Java中String、StringBuffer和StringBuilder的区别和堆栈内存分配

Java中的String类是一个很常用,但最不注意其细节的类,因此大多数面试会那这个类做文章。比如String str = new String("hello");开辟了几个内存空间,String和S...
  • xiangbudao8
  • xiangbudao8
  • 2016年05月25日 18:12
  • 165

StringBuffer和StringBuilder源码解析(一)--构造方法

public final classStringBuffer(StringBuilder) extends AbstractStringBuilder implementsjava.io.Serial...
  • qq_33824312
  • qq_33824312
  • 2017年03月13日 17:40
  • 234

String,StringBuffer与StringBuilder的区别|线程安全与线程不安全

String 字符串常量 StringBuffer 字符串变量(线程安全) StringBuilder 字符串变量(非线程安全)  简要的说, String 类型和 StringBuffer 类...
  • u014086926
  • u014086926
  • 2016年07月29日 22:28
  • 7870
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Vector与ArrayList,Stringbuffer和StringBuilder和String
举报原因:
原因补充:

(最多只允许输入30个字)