当前位置:编程学习 > JAVA >>

返回类型为String [] 和List<String>,这俩货区别是神马?

求知道:) --------------------编程问答-------------------- 苹果和西瓜有什么区别。 --------------------编程问答-------------------- 一个数组,一个List。数组是确定元素数量的,而List是可以继续添加元素的。等等 --------------------编程问答-------------------- 虽然玩JAVA有好几年,但这类问题还真没有认真研究过。坐等高手。。。 --------------------编程问答-------------------- 最主要的区别在于数组定长,List通常是变长的。
假设你的List<String>是个ArrayList,那他们就是包装与被包装的关系ArrayList提供一些便捷的操作数组的方法,如自动扩展数组的容量,打印数组内容等。
如果是其他的List,那就要看具体实现和数组有啥关系了。 --------------------编程问答-------------------- String[]是数组,它的长度是固定的,如果添加的数超过了数组长度则会报错呀,但list<String>你可以一直往里面加String类型的数据 --------------------编程问答-------------------- list<String>是一个泛型,string[]建立的数组是有初始化大小限制的,jdk1.5以前是没有泛型的,以前从数据库取值是通过循环把每条记录分别存入一个javabean,让回在把每个javabean加入arraylist,这样再取数据时候就必须吧arraylist对象做强制转换后才能调里面的方法或者属性,这样做比较麻烦,jdk1.5有了泛型,就不需要这么麻烦的转换了,可以直接调用里面的方法和属性 --------------------编程问答-------------------- List<String>会更灵活。 你可以个返回一个ArrayList<String>,或者一个LinketList<String>, 或者Vector<String> 或者 Stack<String>等,(多态用法),但String[]就不行了。 --------------------编程问答-------------------- String[] 是String数组,长度固定
List<String> 是一个集合,跟数组不一样的是,可以自动增加长度。

不懂多看看api.

--------------------编程问答-------------------- 楼主还没通啊,好好学学语法 --------------------编程问答--------------------     基础最重要................... --------------------编程问答-------------------- 楼主啊,不能这么懒啊,这么简单的问题你得自己去研究查资料!这些都是基础的东西! --------------------编程问答-------------------- List是集合,String【】是数组,用法区别不大 --------------------编程问答--------------------
引用 4 楼 xodbc 的回复:
最主要的区别在于数组定长,List通常是变长的。
假设你的List<String>是个ArrayList,那他们就是包装与被包装的关系ArrayList提供一些便捷的操作数组的方法,如自动扩展数组的容量,打印数组内容等。
如果是其他的List,那就要看具体实现和数组有啥关系了。


ArrayList内部是一个Object[]数组? --------------------编程问答--------------------
引用 7 楼 nmyangym 的回复:
List<String>会更灵活。 你可以个返回一个ArrayList<String>,或者一个LinketList<String>, 或者Vector<String> 或者 Stack<String>等,(多态用法),但String[]就不行了。

喵的,Vector也实现List接口了么? --------------------编程问答-------------------- List的底层是数组实现的,数组能做的 List都能做,但是List能做的 数组未必能做(作业可以 就是太麻烦)。数组是定长 list是变长。 --------------------编程问答-------------------- 这个真的可以有 --------------------编程问答--------------------
引用 14 楼 myy101 的回复:
引用 7 楼 nmyangym 的回复:List<String>会更灵活。 你可以个返回一个ArrayList<String>,或者一个LinketList<String>, 或者Vector<String> 或者 Stack<String>等,(多态用法),但String[]就不行了。
喵的,Vector也实现List接口了么?

是的.
java.util 
Class Vector<E>

java.lang.Object
  java.util.AbstractCollection<E>
      java.util.AbstractList<E>
          java.util.Vector<E>
All Implemented Interfaces:
Serializable, Cloneable, Iterable<E>, Collection<E>, List<E>, RandomAccess
Direct Known Subclasses:
Stack --------------------编程问答-------------------- 字面上区别很大,不过如果你函数返回这两个,都是只保存String,无太大区别,当然如果你得到的结果用途不同区别会有,例如遍历效率啥的。
虽然数组定长,也是在函数中定的,返回值去得长度即可~ --------------------编程问答--------------------
引用 楼主 myy101 的回复:
求知道:)

List<>的源码就是一个数组组成的,
感觉List就是在数组的基础上加了一些功能。
效率低,但是功能强大了。 --------------------编程问答-------------------- 就是数组和链表有啥区别。。。 --------------------编程问答-------------------- List<String>是个集合,可变长度
String  是数组,不可变长度 --------------------编程问答-------------------- 一个实习期的菜鸟建议:
1.自己研究下在问别人
2.要善用百度 谷歌
3.工作了每人一步步带着你走,要培养自学能力 --------------------编程问答-------------------- 银行利息和股票涨跌的关系。 --------------------编程问答-------------------- String[]是个数组,长度固定了
List<String>是个List,内部维护了一个只能存String的数组,当大小不够的时候会通过复制此数组到一个更长的新数组的方式来扩大容量 --------------------编程问答-------------------- 嗯,上面说的都很清楚了,数组不变,list可变 --------------------编程问答-------------------- 定长和变长,用法差不多···
书上有很清楚的介绍哦··· --------------------编程问答-------------------- 这2个东西一个是数组 一个是集合类 都是用来装数据的 数组通常只能定义一类对象 像楼主定义的数组只能存String 集合类的比数组存的范围广 可以存单列的对象 楼主的String[] 在定义的时候就要定义数组的长度是死的, 而集合类的长度是可变,可以增删.. --------------------编程问答-------------------- 最简单的话 一个是数组 一个是集合  一个长度不可变 一个长度可变 --------------------编程问答-------------------- 一个数组,一个List。数组是一个小组多少数量就多少了,而List没有限制
补充:Java ,  Java SE
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,