Redian新闻
>
ArrayList vs Array, StringBuffer vs String, 大侠们给讲讲有
avatar
ArrayList vs Array, StringBuffer vs String, 大侠们给讲讲有# Java - 爪哇娇娃
O*z
1
最近在看Horstmann写的那本Core Java自学,好像看了书之后做练习的时候有很多自己
找出的问题。比如帖子题目写的
这两个对比。我在看了Java API之后,觉得ArrayList的methods可能更多,而且还能转
成Array(除了Integer等类似primitive type的不能转意外(???有待考证))
对于String和Stringbuffer我自己的体会是string是immutable,但是StringBuffer是
可以改变其中string的内容,而且看过API之后感觉StringBuffer这个class自带的
methods更多更实用一些。
请高手指点一下。
还有最后一个问题,Java中的每个class(比如string, arrayList)有这么多methods,
大家是一般都能记住,还是只记住几个很常用的,其他不太常用的methods在有需要的
时候去看API的?不好意思,问题好像挺多的,请各位不吝赐教
avatar
r*r
2
不是高手,Array 和 ArrayList 完全是两码事。
Methods 很多,但是常用的好像不太多。

【在 O*z 的大作中提到】
: 最近在看Horstmann写的那本Core Java自学,好像看了书之后做练习的时候有很多自己
: 找出的问题。比如帖子题目写的
: 这两个对比。我在看了Java API之后,觉得ArrayList的methods可能更多,而且还能转
: 成Array(除了Integer等类似primitive type的不能转意外(???有待考证))
: 对于String和Stringbuffer我自己的体会是string是immutable,但是StringBuffer是
: 可以改变其中string的内容,而且看过API之后感觉StringBuffer这个class自带的
: methods更多更实用一些。
: 请高手指点一下。
: 还有最后一个问题,Java中的每个class(比如string, arrayList)有这么多methods,
: 大家是一般都能记住,还是只记住几个很常用的,其他不太常用的methods在有需要的

avatar
t*a
3
也不能说完全是两回事, ArrayList内部存储是个Array
可以把arraylist想象成为一个实现了List接口的可以自己增长capacity的array

【在 r******r 的大作中提到】
: 不是高手,Array 和 ArrayList 完全是两码事。
: Methods 很多,但是常用的好像不太多。

avatar
r*r
4
不知你们说的哪个 Array, 我是说这个:
java.lang.Object
extended by java.lang.reflect.Array
楼主用的是大写的 Array,这个看上去就是个 utility class.

【在 t***a 的大作中提到】
: 也不能说完全是两回事, ArrayList内部存储是个Array
: 可以把arraylist想象成为一个实现了List接口的可以自己增长capacity的array

avatar
N*m
5
现用现学。

【在 O*z 的大作中提到】
: 最近在看Horstmann写的那本Core Java自学,好像看了书之后做练习的时候有很多自己
: 找出的问题。比如帖子题目写的
: 这两个对比。我在看了Java API之后,觉得ArrayList的methods可能更多,而且还能转
: 成Array(除了Integer等类似primitive type的不能转意外(???有待考证))
: 对于String和Stringbuffer我自己的体会是string是immutable,但是StringBuffer是
: 可以改变其中string的内容,而且看过API之后感觉StringBuffer这个class自带的
: methods更多更实用一些。
: 请高手指点一下。
: 还有最后一个问题,Java中的每个class(比如string, arrayList)有这么多methods,
: 大家是一般都能记住,还是只记住几个很常用的,其他不太常用的methods在有需要的

avatar
p*2
6
java的method还真不多,很多该有的没有。
avatar
z*3
7
ArrayList 是 List,记List的方法
Array这个类我好久没见到了,上一次见到是Array.asList()
StringBuffer理论上效率要高于String
不过我也没有见过多少人用它
avatar
w*z
8
现在都用stringBuilder

【在 z*******3 的大作中提到】
: ArrayList 是 List,记List的方法
: Array这个类我好久没见到了,上一次见到是Array.asList()
: StringBuffer理论上效率要高于String
: 不过我也没有见过多少人用它

avatar
N*m
9
not thread safe, so several times faster.
btw, i denote both of them as sb when declare such a variable.

【在 w**z 的大作中提到】
: 现在都用stringBuilder
avatar
g*g
10
ArrayList is backed by an array, in case you need high performance, a good
initialization parameter matters.
Array is only for reflection, you are probably talking about Arrays.

【在 z*******3 的大作中提到】
: ArrayList 是 List,记List的方法
: Array这个类我好久没见到了,上一次见到是Array.asList()
: StringBuffer理论上效率要高于String
: 不过我也没有见过多少人用它

avatar
p*2
11

嗯。都是sb。我还没遇到StringBuffer perf差的要用StringBuilder的时候,不知道差
别有多大。

【在 N***m 的大作中提到】
: not thread safe, so several times faster.
: btw, i denote both of them as sb when declare such a variable.

avatar
F*X
12
我也在自学中,看了数本书都提到 ArrayList, 但没有看到 Array,我想这 Array 应
该用的不多。关于 StringBuffer 和 String 应该是看你怎么用吧!关于 methods,我
也有相同的感觉,太多太难记,但有些书会说只有某些 class 的 methods 是常用的,
记着就好,其他的要用的就自己看 doc, 不知道实际工作是怎样的状况?

【在 O*z 的大作中提到】
: 最近在看Horstmann写的那本Core Java自学,好像看了书之后做练习的时候有很多自己
: 找出的问题。比如帖子题目写的
: 这两个对比。我在看了Java API之后,觉得ArrayList的methods可能更多,而且还能转
: 成Array(除了Integer等类似primitive type的不能转意外(???有待考证))
: 对于String和Stringbuffer我自己的体会是string是immutable,但是StringBuffer是
: 可以改变其中string的内容,而且看过API之后感觉StringBuffer这个class自带的
: methods更多更实用一些。
: 请高手指点一下。
: 还有最后一个问题,Java中的每个class(比如string, arrayList)有这么多methods,
: 大家是一般都能记住,还是只记住几个很常用的,其他不太常用的methods在有需要的

avatar
N*m
13
in most case, that is true since sb.append is about ~<100 ns.

【在 p*****2 的大作中提到】
:
: 嗯。都是sb。我还没遇到StringBuffer perf差的要用StringBuilder的时候,不知道差
: 别有多大。

avatar
g*g
14
Just use a StringBuilder until you think you shouldn't. Most of the time it'
s a local variable and you don't need to worry about race condition.

【在 p*****2 的大作中提到】
:
: 嗯。都是sb。我还没遇到StringBuffer perf差的要用StringBuilder的时候,不知道差
: 别有多大。

avatar
p*2
15

我觉得array应该用的也不少吧。

【在 F*******X 的大作中提到】
: 我也在自学中,看了数本书都提到 ArrayList, 但没有看到 Array,我想这 Array 应
: 该用的不多。关于 StringBuffer 和 String 应该是看你怎么用吧!关于 methods,我
: 也有相同的感觉,太多太难记,但有些书会说只有某些 class 的 methods 是常用的,
: 记着就好,其他的要用的就自己看 doc, 不知道实际工作是怎样的状况?

avatar
p*2
16

it'
应该这样。只是StringBuilder出来的晚,因此很多地方还是StringBuffer,比如CC150
,我开始就习惯用了,后来也没发现有什么问题。不过是应该首选StringBuilder。回
头注意一下。

【在 g*****g 的大作中提到】
: Just use a StringBuilder until you think you shouldn't. Most of the time it'
: s a local variable and you don't need to worry about race condition.

avatar
F*X
17
我是说 Array class 很少在书里看到。 很多初级 Java 书都先教 ArrayList 然后再
讲解 Generic

【在 p*****2 的大作中提到】
:
: it'
: 应该这样。只是StringBuilder出来的晚,因此很多地方还是StringBuffer,比如CC150
: ,我开始就习惯用了,后来也没发现有什么问题。不过是应该首选StringBuilder。回
: 头注意一下。

avatar
p*2
18

java Array class到底是啥东西呢?

【在 F*******X 的大作中提到】
: 我是说 Array class 很少在书里看到。 很多初级 Java 书都先教 ArrayList 然后再
: 讲解 Generic

avatar
t*a
19
可以干些猥琐事情。。。比如说动态创建一个T[]

【在 p*****2 的大作中提到】
:
: java Array class到底是啥东西呢?

avatar
p*2
20

给个JDK的link?

【在 t***a 的大作中提到】
: 可以干些猥琐事情。。。比如说动态创建一个T[]
avatar
p*2
21
找到了。reflect里边的呀。那应该用的不多。
avatar
t*a
23
看见过有人用它来work around java不能new T[]的问题。。。。
其实很蛋疼。。。多数情况没必要的

【在 p*****2 的大作中提到】
: 找到了。reflect里边的呀。那应该用的不多。
avatar
z*3
24
这个类,在google里面输入Array Java
前几个搜索记录居然都是Arrays的
可想而知了

【在 t***a 的大作中提到】
: 可以干些猥琐事情。。。比如说动态创建一个T[]
avatar
z*3
25
1.5关于concurrency的优化
跟stringbuffer的区别类似concurrenthashmap和hashmap的区别
一个线程安全一个不安全

CC150

【在 p*****2 的大作中提到】
: 找到了。reflect里边的呀。那应该用的不多。
avatar
t*a
26
一般stringbuffer和stringbuilder干的事都是在一个local method里就搞定了
如果真是多线程一起搞一个stringbuffer,这设计也太惊世骇俗了点

【在 z*******3 的大作中提到】
: 1.5关于concurrency的优化
: 跟stringbuffer的区别类似concurrenthashmap和hashmap的区别
: 一个线程安全一个不安全
:
: CC150

avatar
N*m
27
stringbuffer谈不上惊世骇俗吧,比如远程语音通话识别,
两端七嘴八舌的,最后都用一个stringbuffer写道服务器端。
当然自己写也费不了多大力气

【在 t***a 的大作中提到】
: 一般stringbuffer和stringbuilder干的事都是在一个local method里就搞定了
: 如果真是多线程一起搞一个stringbuffer,这设计也太惊世骇俗了点

avatar
x*d
28
stringbuffer is not extreme tread safe, you have to be careful
avatar
F*n
29
暴露了没怎么实际写过JAVA

【在 z*******3 的大作中提到】
: ArrayList 是 List,记List的方法
: Array这个类我好久没见到了,上一次见到是Array.asList()
: StringBuffer理论上效率要高于String
: 不过我也没有见过多少人用它

avatar
v*r
30
StringBuffer/Builder is more efficient for String concat. But latest Java
compiler is able to optimize StringA + StringB, so StringBuilder is rarely
used.
Mutable object can not be used as HashMap key, which makes use of mutable
String even more limited in reality.

【在 O*z 的大作中提到】
: 最近在看Horstmann写的那本Core Java自学,好像看了书之后做练习的时候有很多自己
: 找出的问题。比如帖子题目写的
: 这两个对比。我在看了Java API之后,觉得ArrayList的methods可能更多,而且还能转
: 成Array(除了Integer等类似primitive type的不能转意外(???有待考证))
: 对于String和Stringbuffer我自己的体会是string是immutable,但是StringBuffer是
: 可以改变其中string的内容,而且看过API之后感觉StringBuffer这个class自带的
: methods更多更实用一些。
: 请高手指点一下。
: 还有最后一个问题,Java中的每个class(比如string, arrayList)有这么多methods,
: 大家是一般都能记住,还是只记住几个很常用的,其他不太常用的methods在有需要的

相关阅读
logo
联系我们隐私协议©2024 redian.news
Redian新闻
Redian.news刊载任何文章,不代表同意其说法或描述,仅为提供更多信息,也不构成任何建议。文章信息的合法性及真实性由其作者负责,与Redian.news及其运营公司无关。欢迎投稿,如发现稿件侵权,或作者不愿在本网发表文章,请版权拥有者通知本网处理。