社区
C#
帖子详情
大家说说使用ArrayList和泛型List的异同和场合。
康斯坦汀
2011-12-08 08:25:32
我知道ArrayList放进去的是Object,存取有装箱拆箱,所以效率似乎不如泛型的List<T>.
但仍有很多新的代码(不是为了兼容)使用ArrayList而不是泛型。请大家分析一下,
ArrayList相比泛型的优点有哪些?什么场合用ArrayList而不是泛型呢?
...全文
258
17
打赏
收藏
大家说说使用ArrayList和泛型List的异同和场合。
我知道ArrayList放进去的是Object,存取有装箱拆箱,所以效率似乎不如泛型的List. 但仍有很多新的代码(不是为了兼容)使用ArrayList而不是泛型。请大家分析一下, ArrayList相比泛型的优点有哪些?什么场合用ArrayList而不是泛型呢?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
17 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
cherish_55
2011-12-09
打赏
举报
回复
arraylist 确实过时了,现在到处都用list<t>。。。。。。
康斯坦汀
2011-12-09
打赏
举报
回复
13楼做过测试么? ArrayList一定比List<T>慢么? MSDN也没说ArrayList慢。
MSDN只是说对于值类型,List<T>快,对于引用类型,两者性能一样。
凋零的老树
2011-12-09
打赏
举报
回复
[Quote=引用 5 楼 ohkuy 的回复:]
引用楼主 r3000 的回复:
ArrayList相比泛型的优点有哪些?什么场合用ArrayList而不是泛型呢?
1.毫无优势
2.怀旧的人喜欢用ArrayList
[/Quote]
对,ArrayList完全可以被IList取代,但是泛型的优点,在实际中,其实也是没有任何意义的,说白了不就是ArrayList的效率低点,也可以理解为速度慢点,IList<T> 确实是能快一点,但是快的那点时间,我们人好像都感觉不出来。
反过来,如果弄个IList<T> 感觉代码不如ArrayList优雅。
所以明明知道ArrayList效率不行,但是还是用ArrayList,因为极大部分的场景是无所谓效率的
康斯坦汀
2011-12-09
打赏
举报
回复
[Quote=引用 11 楼 cuthkid 的回复:]
有了泛型后,就不要用ARRAYLIST了~~~
[/Quote]
不同意,ArrayList有它的使用场合。
wushuai1346
2011-12-09
打赏
举报
回复
不同的场景使用不同的类型,这个很同意.应该说大部分的场景下list<T>都比ArrayList要有效率和优雅,不过很想知道ArrayList到底使用于什么样的场合.希望r3000可以详细讲解一下,洗耳恭听
ascendlin
2011-12-08
打赏
举报
回复
不清楚
MKing0412
2011-12-08
打赏
举报
回复
http://www.cnblogs.com/Godblessyou/archive/2011/05/05/2037572.html
farmer0111
2011-12-08
打赏
举报
回复
我平时用arraylist的比list多一点。。。
bastenf
2011-12-08
打赏
举报
回复
具备泛型的优势:类型安全性, 性能提升(不用拆装箱), 二进制代码重用。。
ohkuy
2011-12-08
打赏
举报
回复
[Quote=引用楼主 r3000 的回复:]
ArrayList相比泛型的优点有哪些?什么场合用ArrayList而不是泛型呢?
[/Quote]
1.毫无优势
2.怀旧的人喜欢用ArrayList
liu513133872
2011-12-08
打赏
举报
回复
List<T> 就是具备泛型的特点,ArrayList是可变数组,什么时候用哪个:List<T>类型安全性点,实际上真是用起来很多时候都可以通用,只是对类进行排序最好用 List<T>。高人如何解答..
q107770540
2011-12-08
打赏
举报
回复
区别很多,比如类型安全性
andyalex
2011-12-08
打赏
举报
回复
ArrayList相比List的优点,就是能存放不同类型的嘛,
能用List<T>的就用List<T>
jiuhexuan
2011-12-08
打赏
举报
回复
ArrayList已经不推荐使用,有了泛型,基本无用武之地。
不是一个时代的产物,
大多数场景不会用object还做变量,必然拆装箱。
dean615
2011-12-08
打赏
举报
回复
有了泛型后,就不要用ARRAYLIST了~~~
康斯坦汀
2011-12-08
打赏
举报
回复
8楼贴的文章写的不好,测试的程序有很多漏洞。不严谨没有说服力。
习----题-Java-Web程序设计教程-[共2页].pdf
Java Web 程序设计教程 30 Student s=
list
.get(i);// System.out.println(s.getSno()+"," +s.getSname()+","+s.getScore()); } 其中,第 行部分在定义
List
时定义了
泛型
,保证
List
中的元素都是 Student 类型。因此在 第 行部分在取出
List
中的元素时就不需要再强制转换了。 另外,在前面的比较接口中也可以
使用
泛型
,例如例 3.3 的 MyCmp 类还可以这样来实现, 请看如下语句。 public class MyCmp implements Comparator
{ public int compare(Student s1, Student s2){ …… } } 总之,
泛型
其实是在集合创建时就设定集合中放置何种类型的对象。这样以后读出元素时就 不需要强制转换了。如果不是
泛型
,那么无论向集合中添加何种对象都当作对象 Object,所以取 出来也是 Object,因此需要强制转换。 本章小结 本章主要介绍了 Java 集合框架。集合是数据在缓存中存储的一个重要方式。学习本章知识, 你要深刻理解集合原理以及各种集合的区别:为什么有那么多类型不同的集合。其实,各种集合
使用
场合
是不一样的,因此,要注意区分 Set、
List
和 Map 接口之间的
异同
。在 Java EE 中对数据 进行存储时都可以考虑集合。但要依据存储要求不同(如读优先还是写优先)选择适合的集合类 型。此外,本章还介绍了 Java
泛型
编程。限于篇幅,我们没有详细研究
泛型
编程技术。如果要深 入了解
泛型
编程,请查阅相关资料。 习 题 上机实践 1.将本学期开设的课程名称加入到 HashSet 中,并
使用
迭代器遍历输出。 2.调试书本上 TreeSet 的例子,理解其原理。 3.完成以下实验: (1)定义一个学生类:属性有学号、姓名、专业、高数成绩、外语成绩、Java 课程成绩。 (2)在测试类中生成多个学生类的对象,放入 TreeSet 中,要求按照 3 门课总成绩从高到低 排序,总成绩相等按学号排序。输出排序结果。 注意实现 Comparator 接口的 compare(Object obj1,Object obj2)函数。 4.以
List
接口对象(
Array
List
)为基础建立一个通信录,要求通信录中必须含有编号、姓名, 性别、电话、地址、Email 等。实现该类并包含添加、删除、修改、按姓名查等几个方法。编写 主程序测试。 参考如下。
C#中数组Array、
Array
List
、
泛型
List
的比较
在C#中数组Array,
Array
List
,
泛型
List
都能够存储一组对象,但是在开发中根本不知道用哪个性能最高,下面我们慢慢分析分析。 一、数组Array 数组是一个存储相同类型元素的固定大小的顺序集合。数组是用来存储数据的集合,通常认为数组是一个同一类型变量的集合。 Array 类是 C# 中所有数组的基类,它是在 System 命名空间中定义。 数组在内存中是连续存储的,所以它的索引...
C#中数组 集合(
Array
List
)
泛型
集合
List
字典(dictionary全面对比
转载:https://www.cnblogs.com/JK1989/p/6679523.html?utm_source=itdadao&utm_medium=referral C#中数组、集合(
Array
List
)、
泛型
集合
List
<T>、字典(dictionary<TKey,TValue>)全面对比 为什么把这4个东西放在一起来
说
,因为c#中的这4个对象都是用...
C#重的数组、集合(
Array
List
)、
泛型
集合(
list
)三者比较及扩展延伸……
本来我只想总结下数组、集合(
Array
List
)、
泛型
集合(
list
<T>)三者的比较的,可以一写下来要扩展的知识点有点多了,只能写一个小的知识点列表了如下: 1、数组、集合(
Array
List
)、
泛型
集合(
list
<T>)三者的比较 2、接口 3、值类型和引用类型解析 4、
泛型
5、接口和类的区别 6、重载和重写 7、虚方法和抽象方法 8、继承和...
C#中常用的
泛型
集合和非
泛型
集合(
Array
List
、Hashtable、
List
、Dictionary)
前言 集合(Collection)类是专门用于数据存储和检索的类。这些类提供了对栈(stack)、队列(queue)、列表(
list
)和哈希表(hash table)的支持。大多数集合类实现了相同的接口。 集合(Collection)类服务于不同的目的,如为元素动态分配内存,基于索引访问列表项等等。这些类创建 Object 类的对象的集合。在 C# 中,Object
C#
110,534
社区成员
642,575
社区内容
发帖
与我相关
我的任务
C#
.NET技术 C#
复制链接
扫一扫
分享
社区描述
.NET技术 C#
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
让您成为最强悍的C#开发者
试试用AI创作助手写篇文章吧
+ 用AI写文章