`
谷熙亚
  • 浏览: 51348 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

Vector与ArrayList,Stringbuffer和StringBuilder和String

    博客分类:
  • java
阅读更多

一、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 Vector简单初学者代码

    此外,`String`对象经常与`StringBuilder`或`StringBuffer`一起使用,后者在多线程环境下进行字符串拼接时更为高效。 接下来,我们讨论`Vector`类。`Vector`是Java集合框架的一部分,它是动态数组的实现,可以自动...

    阿里巴巴Java方向面试题汇总(含答案).pdf

    在 Java 面试中,了解 String、 StringBuffer 和 StringBuilder 的区别是非常重要的。String 是不可变的,因为它在 JDK 中被声明为 final 类,而 StringBuffer 和 StringBuilder 是可变的,因为它们的字符内容可以...

    Java重点面试题 – 针对java面试过程中经常遇到的一些试题进行总结.docx

    Java编程语言在面试中常常涉及一系列关键概念,这些概念包括方法的重载(overload)与覆盖(override)、接口与抽象类的区别、String、StringBuffer与StringBuilder的特性比较、ArrayList、LinkedList与Vector的差异、...

    java要掌握的面试知识点

    7. String与StringBuffer/StringBuilder:String是不可变的,一旦创建就不能修改,适合在字符串不需要频繁修改的场景。StringBuffer和StringBuilder(JDK 5.0新增)支持字符串的动态修改,其中StringBuilder在单线程...

    阿里巴巴常考面试题及汇总答案.docx

    在Java编程语言中,String、StringBuffer和StringBuilder是常见的字符串处理类。String对象一旦创建就无法修改,因为它是final类,确保了不可变性,这对于多线程环境下的安全性有一定的帮助,但同时也意味着每次修改...

    Java面试题总结,包括数据结构、设计模式等常见问题

    4. **String与StringBuffer/StringBuilder的区别**: - String是不可变的,每次修改都会创建新的对象。 - StringBuffer和StringBuilder在多线程和单线程环境下分别有不同的优势:StringBuffer是线程安全的,适合多...

    java的一些基础知识什么这类的

    * 可变性:StringBuffer 和 StringBuilder 可变,而 String 不可变。 * 线程安全性:String 不可变,因此是线程安全的;StringBuilder 不是线程安全的;StringBuffer 是线程安全的,内部使用 synchronized 进行同步...

    java华为面试题.pdf

    Java中,String是不可变的,而StringBuffer和StringBuilder是可变的,其中StringBuffer是线程安全的,而StringBuilder则不是。在多线程环境下使用StringBuffer可以避免线程安全问题。 2. 集合框架: 提到了...

    java面试题汇总,基本是初级中级问题

    String 和 StringBuffer/StringBuilder 1. String 是不可变字符串,StringBuffer 和 StringBuilder 是可变字符串。 2. StringBuffer 是线程安全的,StringBuilder 是线程不安全的。 int 和 Integer 1. int 是 ...

    java阿里巴巴常用面试题

    - 对于ArrayList和Vector,检索和末尾操作效率相同,其他位置插入和删除操作会涉及元素移动,时间复杂度为O(n-i)。 - **LinkedList** 插入和删除效率较高,但检索效率较低,因为需要遍历链表。 4. **HASHTABLE、...

    java知识点

    7. **String与StringBuffer的区别**:String对象一旦创建就不能更改,而StringBuffer或StringBuilder对象可以动态修改。因此,对于需要多次修改字符串的情况,使用StringBuffer或StringBuilder更为高效。 8. **运行...

    java 笔试、面试题

    4. **String 和 StringBuffer/StringBuilder**:String 一旦创建就不能修改,而StringBuffer和StringBuilder提供了append()等方法来修改字符串内容,适合大量字符串拼接操作。线程安全方面,StringBuffer是线程安全...

    整理的Java-EE面试总结.pdf

    在字符串操作方面,String、StringBuffer和StringBuilder的区别是面试时经常被问到的问题。String是不可变的字符串,每次修改都会生成新的字符串对象。StringBuffer和StringBuilder则是可以修改内容的字符串缓冲区。...

    淘宝java面试题.pdf

    以下是对【标题】“淘宝java面试题.pdf”中提及的两个知识点——`String`、`StringBuffer`、`StringBuilder`的区别以及`Vector`、`ArrayList`、`LinkedList`的区别进行详细解释: 一、`String`、`StringBuffer`、`...

    2011 java面试题

    3. String、StringBuffer与StringBuilder的区别: - String是不可变的,每次修改都会创建新的对象,适合不可变的字符串。 - StringBuffer与StringBuilder都是可变的,用于字符串的拼接,线程安全的为StringBuffer...

    Java面试中,最常被人问到的几个问题

    3. **String、StringBuffer和StringBuilder的区别**: - **String**:不可变对象,一旦创建就无法修改。每次修改都会创建新的String对象,这在大量字符串操作时可能导致内存浪费。 - **StringBuffer**:线程安全的...

    玉宝必背锦集之---葵花宝典.pdf

    String类是不可变的,因此对于频繁变更的字符串操作,推荐使用StringBuffer或StringBuilder。 3. int是Java的原始数据类型,而Integer是int的封装类。原始类型存储的是具体的数值,而封装类是对象,可以赋予null值...

    java面试题-读书笔记-面试失败一次就记录一次的坑-不知不觉已经这么多了.docx

    1. **String, StringBuffer, StringBuilder的区别** - **String** 是一个不可变类,意味着一旦创建,其内容就不能更改。这是由于String在Java中被声明为final,确保了它的不可变性。 - **StringBuffer** 和 **...

Global site tag (gtag.js) - Google Analytics