A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 江湖一浪人 中级黑马   /  2013-6-11 16:21  /  1807 人查看  /  9 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 江湖一浪人 于 2013-6-14 16:20 编辑

各位黑马,你们好!
最近学习了集合的应用,但对于集合有这么多,我现在都糊涂了,集合的作用和各自的应用场景是什么。
就是说什么时候适合用List,什么时候用 Dictionary之类的问题?
{:soso_e132:}

评分

参与人数 1技术分 +1 收起 理由
苏波 + 1

查看全部评分

9 个回复

倒序浏览
List<student> 参数可以是任何类型   

Dictionary<key,Value>   键值对   
回复 使用道具 举报
ArrayList通过添加和删除元素就可以动态改变数组的长度。但跟一般的数组比起来,速度慢些。ArrayList的索引会自动分配和调整,而对于值类型,特定类型(不包括Object)的Dictionary的性能较优!
回复 使用道具 举报
补充:在遍历时,Dictionary会产生大量的内存换页操作,而List只需要进行最少的内存换页即可,这就是List和Dictionary在遍历时效率差异的根本原因。谈不上哪种好,多编程就会体会到适合的场景应用了

评分

参与人数 1技术分 +1 收起 理由
苏波 + 1

查看全部评分

回复 使用道具 举报
给你归纳一下总结一下:
                泛型和集合的区别:相同点元素的个数都是可变的
                              不同点:泛型中的数据类类型是统一的,集合的数据类型是object,每次向集合中赋值取值时,很有可能在执行装箱拆箱操作,效率会底
                 集合与数组的比较:
                                 相同点:都是用来存放元素的
                                不同点:数组的长度是固定的,集合的长度和数据类型是可变的

            哈希表 和集合的比较:
                     相同点:元素的数据类型都是object;元素的个数都是可变化的
                     不同点:集合中存放的是单个的元素,哈希表存放的是键值对
           字典与哈希表的比较
                      相同点:存放的都是键值对
                       不同点:哈希表的键和值都是object类型,字典的键和值都是统一的数据类型

  


  自己整理的笔记、求技术分

评分

参与人数 1技术分 +1 收起 理由
苏波 + 1

查看全部评分

回复 使用道具 举报 1 0
学习了!谢谢你们
回复 使用道具 举报
List<T>属于泛型的使用,也就是说它可以用来存储各种类型,当使用list中的值时不需要进行UNbox的操作(也就是类型的转换),但相比之下Arraylist虽然可以存储各种类型,但需要进行unbox操作。Dictionary<key,value>很显然是对键值对的存储的,利用Dictionary可以很好的进行键值对的存储以便需要的时候根据键名来索引到值。

评分

参与人数 1技术分 +1 收起 理由
苏波 + 1

查看全部评分

回复 使用道具 举报 1 0
LIst<T>是泛型集合,可以自定义集合的类型,Dictionary<T,T>是字典,也是反省集合,两者都能自定义类型约束

List是通过索引的方式来存取值的,类似数组,使用场合 和数组相同,但它能随意的变更元素的数目

DIctionary是通过Key(就是第一个T)来存取值的,比如火星文转换

评分

参与人数 1技术分 +1 收起 理由
苏波 + 1

查看全部评分

回复 使用道具 举报
集合可以简单的理解为一个不定长度的数组,他的好处是初始化的时候不必知道数组到底有多长,而是在初始化之后对数据进行添加。
这种类型对数据库操作尤为有用,因为在执行查询语句的时候我们也不知道到底会返回多少行数据。
比如ArrayList al = new ArrayList();
al.Add("test1");
al.Add("test2");
al.Add("test3");
访问的时候还是用索引访问集合的元素al[0];al[1];al[2];
上面只是一个简单的例子,关于集合MS定义了IList接口,并有很多实现类,具体内容查查MSDN吧...能找到很多相关知道。

评分

参与人数 1技术分 +1 收起 理由
苏波 + 1

查看全部评分

回复 使用道具 举报 1 0
谢谢!明白了
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马