一、Vector与ArrayList讲解
* 用到了向量Vector 可以参照ArrayList的用法 ,他们用法基本一样。
* 区别: Vector是线性安全的,还有连个空间的增长长度方式不一样。
* Vecrot是每次增加原来的一倍,ArrayList是每次增加原来的一半。
二、Stringbuffer和StringBuilder和String
多线程的情况下才需要考虑线程安全问题。比如一个 StringBuilder ,可能被多个线程访问,那么如果没有 synchronized 的话,第一个线程改变了其值,之后又有第二个线程改变了它的值。当切换回第一个线程时,读到的就是第二个线程修改后的值了。
如果不考虑多线程, StringBuilder 比StringBuffer要快。
StringBuffer安全吧
果然是StringBuffer。这样的话这段代码就不太好了……
首先,如果你使用的JDK版本在1.5或以上的话,StringBuffer已经不推荐使用了,由StringBuilder所替代。后者的性能跟更好一些。
其次,你在拼接完字符串之后,如果在实际代码里就跟问题里给出的代码一样,紧接着就做String.split()的话,那就浪费了。用实现了List接口的容器(ArrayList或者LinkedList)来保存中间结果不就好了么,没有必要拼接起来再分开
- ArrayList<Double> tempList = new ArrayList<Double>();
- while (it.hasNext()) {
- Object[] obj = (Object[])it.next();
- tempList.add(Double.parseDouble(obj[2].toString()));
- // 不知道obj[2]里原本是什么,如果是double的话那直接强制转换类型就好了
- } // 取得记录
- double[] dArray = new double[tempList.size()];
- for (int i = 0; i < dArray.length; ++i) {
- dArray[i] = tempList.get(i);
- } // 得到一行数据对应的double数组
当然如果你拼接起来是有别的用途,例如说存到数据库或者存到文本文件的话,那拼接成字符串也不是不行……
然后double[][]数组的意义。从你的代码看,你是想把一个一维的double数组硬塞到一个二维的double数组里(你的代码里虽然定义了一个len*len的矩阵,却只向其第一行填充了值)。请问你确定这么做是符合你的要求的么?JFreeChart的CategoryDataset需要的数据到底是什么,恐怕你得自己查一下文档去了解一下。有个朋友以前做过一个作业用过JFreeChart的XYPlot,可以看看他是怎么用数据的:http://ravenex.iteye.com/blog/175557(JFreeChart相关的代码在那帖的附件里)
<!--EndFragment-->
<!--EndFragment-->
相关推荐
此外,`String`对象经常与`StringBuilder`或`StringBuffer`一起使用,后者在多线程环境下进行字符串拼接时更为高效。 接下来,我们讨论`Vector`类。`Vector`是Java集合框架的一部分,它是动态数组的实现,可以自动...
一、关于String、StringBuffer和StringBuilder的区别: - String是不可变对象,一旦创建就无法改变,这归因于其final类的特性,提供高效且安全的字符串操作。 - StringBuffer和StringBuilder都是可变的字符串类,...
在 Java 面试中,了解 String、 StringBuffer 和 StringBuilder 的区别是非常重要的。String 是不可变的,因为它在 JDK 中被声明为 final 类,而 StringBuffer 和 StringBuilder 是可变的,因为它们的字符内容可以...
Java编程语言在面试中常常涉及一系列关键概念,这些概念包括方法的重载(overload)与覆盖(override)、接口与抽象类的区别、String、StringBuffer与StringBuilder的特性比较、ArrayList、LinkedList与Vector的差异、...
7. String与StringBuffer/StringBuilder:String是不可变的,一旦创建就不能修改,适合在字符串不需要频繁修改的场景。StringBuffer和StringBuilder(JDK 5.0新增)支持字符串的动态修改,其中StringBuilder在单线程...
在Java编程语言中,String、StringBuffer和StringBuilder是常见的字符串处理类。String对象一旦创建就无法修改,因为它是final类,确保了不可变性,这对于多线程环境下的安全性有一定的帮助,但同时也意味着每次修改...
4. **String与StringBuffer/StringBuilder的区别**: - String是不可变的,每次修改都会创建新的对象。 - StringBuffer和StringBuilder在多线程和单线程环境下分别有不同的优势:StringBuffer是线程安全的,适合多...
* 可变性:StringBuffer 和 StringBuilder 可变,而 String 不可变。 * 线程安全性:String 不可变,因此是线程安全的;StringBuilder 不是线程安全的;StringBuffer 是线程安全的,内部使用 synchronized 进行同步...
Java中,String是不可变的,而StringBuffer和StringBuilder是可变的,其中StringBuffer是线程安全的,而StringBuilder则不是。在多线程环境下使用StringBuffer可以避免线程安全问题。 2. 集合框架: 提到了...
String 和 StringBuffer/StringBuilder 1. String 是不可变字符串,StringBuffer 和 StringBuilder 是可变字符串。 2. StringBuffer 是线程安全的,StringBuilder 是线程不安全的。 int 和 Integer 1. int 是 ...
- 对于ArrayList和Vector,检索和末尾操作效率相同,其他位置插入和删除操作会涉及元素移动,时间复杂度为O(n-i)。 - **LinkedList** 插入和删除效率较高,但检索效率较低,因为需要遍历链表。 4. **HASHTABLE、...
7. **String与StringBuffer的区别**:String对象一旦创建就不能更改,而StringBuffer或StringBuilder对象可以动态修改。因此,对于需要多次修改字符串的情况,使用StringBuffer或StringBuilder更为高效。 8. **运行...
4. **String 和 StringBuffer/StringBuilder**:String 一旦创建就不能修改,而StringBuffer和StringBuilder提供了append()等方法来修改字符串内容,适合大量字符串拼接操作。线程安全方面,StringBuffer是线程安全...
在字符串操作方面,String、StringBuffer和StringBuilder的区别是面试时经常被问到的问题。String是不可变的字符串,每次修改都会生成新的字符串对象。StringBuffer和StringBuilder则是可以修改内容的字符串缓冲区。...
以下是对【标题】“淘宝java面试题.pdf”中提及的两个知识点——`String`、`StringBuffer`、`StringBuilder`的区别以及`Vector`、`ArrayList`、`LinkedList`的区别进行详细解释: 一、`String`、`StringBuffer`、`...
3. String、StringBuffer与StringBuilder的区别: - String是不可变的,每次修改都会创建新的对象,适合不可变的字符串。 - StringBuffer与StringBuilder都是可变的,用于字符串的拼接,线程安全的为StringBuffer...
3. **String、StringBuffer和StringBuilder的区别**: - **String**:不可变对象,一旦创建就无法修改。每次修改都会创建新的String对象,这在大量字符串操作时可能导致内存浪费。 - **StringBuffer**:线程安全的...
String类是不可变的,因此对于频繁变更的字符串操作,推荐使用StringBuffer或StringBuilder。 3. int是Java的原始数据类型,而Integer是int的封装类。原始类型存储的是具体的数值,而封装类是对象,可以赋予null值...
1. **String, StringBuffer, StringBuilder的区别** - **String** 是一个不可变类,意味着一旦创建,其内容就不能更改。这是由于String在Java中被声明为final,确保了它的不可变性。 - **StringBuffer** 和 **...