List and String[]

sling2007 2007-10-17 10:42:33
List<String> and String[] 有什么不同? 怎么确定什么时候 用哪个 ?
...全文
279 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
issgates 2007-10-17
  • 打赏
  • 举报
回复
是的, 最基本的区别就是一个是定长, 一个是不定长.
  • 打赏
  • 举报
回复
String[] 是定长数组,而 List<String> 可以看作是变长数组。

长度是固定的,即不会增加也不会减少时采用 String[]
长度未知,并且长度有可能增加时,使用 List<String>,比如要把
文件中的每一行都放到数组中,由于并不知道文件中的行数,所以使用
List<String> 就较为方便一些。

而且 List<String> 底层是以 String[] 为基础而扩展的。
冰思雨 2007-10-17
  • 打赏
  • 举报
回复
使用数组,最显著的特点,就是数组的元素个数是固定的,位置也是和元素相对应的。
String[] 当你确定每个位置的元素(字符串)内容的时候,或者,要频繁通过位置来取得数组内容的时候。使用数组还是很好的。当然,如果你要对数组进行添加,删除某个元素(字符串)那就是比较麻烦的事情,因为,这不但会影响的其他元素的位置,也要影响的数组的大小。
List <String > 在J2SE里面,确切的将,它是一个接口,表示一个对于链表的所有功能(操作)。当然,J2SE里面也提供的List接口的一些具体的实现类,最常用的应该是ArrayList和LinkedList,使用尖括号将String类括起来,是JDK1.5的范型所要求的,也就是说,这表明,你所使用的链表里面只能存放String类型的数据。当然,使用ArrayList和LinkedList都不用在意链表的长度问题,因为,一般情况下,我们使用的链表大小是不会超出Java整型变量的最大值的。所以,我认为,预期使用String[]不如使用ArrayList<String>,这样既使用方便,也不用顾虑到其他的一些问题(比如增删里面的元素,有可能是元素位置变动之类的)。当然,如果,你频繁的要对这个集合当中的元素进行增删,不妨使用LinkedList,它以循环链表作为原型,对于数据的增删操作,相当方便,正反两个方向的对元素的遍历也可以使用listIterator,还是暴爽无比的。
List<String>不能赋值给List List<String>不能赋值给List<Object> 1.首先,二者不是父子类关系。 如果是普通的父子类关系,由于Java的多态性,底层的后期绑定机制会在运行时检索子类方法列表,从而实现多态。 2.List<T>属于泛型。(也算是多态的...

62,616

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧