java集合分类总结.doc
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- java 集合 分类 总结
- 资源描述:
-
java集合分类总结 一、数组、集合 数组、集合:都是一种容器,用一个对象管理多个对象; 数组:不能自动增长;只能存放同类型的元素 集合:能自动扩容;部分集合允许存放不同类型的元素; 二、学习这些集合类要掌握哪些东西: 1)怎样得到(选择)集合对象; 2)怎样添加元素 3)怎样删除元素 4)怎样循环遍历没一个元素 三、list、set、map collection:父接口; Set:接口---一个实现类:HashSet List:接口---三个实现类:LinkedList,Vector,ArrayList SortedSet:接口---实现类:TreeSet 1、List: List:有序列表,允许存放重复的元素; 实现类: ArrayList:数组实现,查询快,增删慢,线程不平安,轻量级;下标也是从0开始; LinkedList:链表实现,增删快,查询慢 Vector:数组实现,线程平安,重量级 2.Set: 无序集合,不允许存放重复的元素; 实现类HashSet:equals返回true,hashCode返回相同的整数;哈希表; 子接口SortedSet:对Set排序实现类:TreeSet:二叉树实现的; 看API:泛型:表示一个对象; Iterator:接口,迭代器; java.util; hasNext; next; remove; Iterable:可迭代的,访问的; ng;实现了可迭代的接口就可以用迭代的方式访问; 只需实现iterator;方法即可;Iteratoriterator; 三种循环的访问方式: 只有实现了Iterable接口的才能用第三种;能用第二种的也一定能用第三种; ArrayList:自动扩容,是数组照搬过来的; 3.Map HashMap:键值对,key不能重复,但是value可以重复;key的实现就是HashSet;value对应着放; HashSet的后台有一个HashMap;初始化后台容量;只不过生成一个HashSet的话,系统只提供key的访问; 如果有两个Key重复,那么会覆盖之前的; Hashtable:线程平安的 Properties:java.util.Properties;key和value都是String类型,用来读配置文件; HashMap与Hashtable区别: HashMap线程不平安的,允许null作为key或value; Hashtable线程平安的,不允许null作为key或value; TreeMap:对key排好序的Map;key就是TreeSet,value对应每个key; key要实现Comparable接口或TreeMap有自己的构造器; HashSet:remove(Objecto)的原那么看这个对象O的Hashcode和equals是否相等,并不是看是不是一个对象; 定义一个Map;key是课程名称,value是Integer表示选课人数; map.put(cou,map.get(cou)+newInteger(1)); 四、Hashtable、Properties 1,Hashtable:实现了Map接口,此类实现一个哈希表,作用和HashMap相同,java集合总结。任何非null对象都可以用作键或值。为了成功地在哈希表中存储和获取对象,用作键的对象必须实现hashCode方法和equals法。 2,Properties:继承自Hashtable,比Hashtable更严格属性列表中每个键及其对应值都是一个字符串。 常用方法StringgetProperty(String?key)和setProperty(Stringkey,Stringvalue); 用法:我在C盘下建了一个名为yy.dat的文件,文件的内容为: name=hehe password=12345 执行以下程序,输出hehe,可见用Properties可以很方便的解析配置文件 Propertiesp=newProperties; p.load(newFileInputStream("C:yy.dat")); System.out.println(p.getProperty("name")) 五、两个工具类Arrays和Collections 1.Arrays、此类包含用来操作数组(比方排序和搜索)的各种方法。此类还包含一个允许将数组作为列表来查看的静态工厂 2.Collections、主要提供了在collection上进展操作的静态方法 六、遗留的几个类 1.Hashtable,作用和HashMap相同,不过它是线程平安的,如果不需要线程平安,应该使用HashMap 2.Enumeration,遗留集合使用枚举接口来遍历元素,它有两个方法,hasMoreElements和nextElement,用法类似Iterator。 3.Stack,继承自Vector,实现了栈的功能,提供了push方法押栈和pop方法出栈。 4.BitSet,位集。如果需要高效率的存储一个位序列,例如一个标志序列,请使用位集。它可以对各个位进展 读取get(i) 设置set(i) 清楚clear(i) 七、常见笔试题目汇总 1.Collection和Collections的区别。 Collection是集合类的上级接口,继承与他的接口主要有Set和List. Collections是针对集合类的一个帮助类,他提供一系列静态方法实现对各种集合的搜索、排序、线程平安化等操作,工作总结《java集合总结》。 2.List,Set,Map是否继承自Collection接口? List,Set是,Map不是 3.两个对象值相同(x.equals(y)==true),但却可有不同的hashcode,这句话对不对? 不对,有相同的hashcode。 4.你所知道的集合类都有哪些?主要方法? 最常用的集合类是List和Map。List的详细实现包括ArrayList和Vector,它们是可变大小的列表,比较适合构建、存储和操作任何类型对象的元素列表。List适用于按数值索引访问元素的情形。 Map提供了一个更通用的元素存储方法。Map集合类用于存储元素对(称作"键"和"值"),其中每个键映射到一个值。 5.排序都有哪几种方法?请列举。用JAVA实现一个快速排序。 排序的方法有:插入排序(直接插入排序、希尔排序),交换排序(冒泡排序、快速排序),选择排序(直接选择排序、堆排序),归并排序,分配排序(箱排序、基数排序) 快速排序的伪代码。 //使用快速排序方法对a[0:n-1]排序 从a[0:n-1]中选择一个元素作为middle,该元素为支点 把余下的元素分割为两段left和right,使得left中的元素都小于等于支点,而right中的元素都大于等于支点 递归地使用快速排序方法对left进展排序 递归地使用快速排序方法对right进展排序 所得结果为left+middle+right 6.HashMap和Hashtable的区别 都属于Map接口的类,实现了将惟一键映射到特定的值上。 HashMap类没有分类或者排序。它允许一个null键和多个null值。 Hashtable类似于HashMap,但是不允许null键和null值。它也比HashMap慢,因为它是同步的。 7.Set里的元素是不能重复的,那么用什么方法来区分重复与否呢?是用==还是equals它们有何区别? Set里的元素是不能重复的,那么用iterator方法来区分重复与否。 equals是判读两个Set是否相等。 equals和==方法决定引用值是否指向同一对象equals在类中被覆盖,为的是当两个别离的对象的内容和类型相配的话,返回真值。 java集合类主要负责保存、盛装其他数据,因此集合类也称容器类。java集合类分为:set、list、map、queue四大体系。其中set代表无序、不可重复的集合;list代表有序、可重复的集合。map代表具有映射关系的集合;queue代表队列集合。 java集合类主要由两个接口派生:Collection和Map,是集合框架的根接口。下面是其接口、子接口和实现类的继承树。 下面就一一介绍四大接口及其实现类。 Set接口。set集合不允许包含相同的元素。set判断两个对象是否相同是根据equals方法。如果两个对象用equals方法返回的是true,set不会承受这两个对象。 HashSet是set接口的典型实现,HashSet按hash算法来存储集合中的元素。因此具有很好的存储和查找性能。HashSet判断两个元素的标准是两个元素的equals方法比较相等,同时两个对象的hasCode方法返回值也相等。HashSet可以保存null元素。 List集合代表一个有序集合。集合中的每个元素都有其对应的顺序索引。Arraylist和vector是list接口的两个典型实现。他们之间的显着区别就是:vector是线性平安的,而arraylist不是。它们两个都是基于数组实现的list类。List还有一个基于链表实现的LinkedList类。当插入、删除元素的速度非常快。这个类比较特殊,功能也特别多,即实现了List接口,也实现了Dueue接口(双向队列)。可以当成双向队列使用,也可以当成栈使用。 Queue用于模拟队列的数据构造。LinkedList和ArrayDueue是其两个比较常用的实现类。 Map用于保存具有映射关系的数据。Map接口有如下几个常用的实现类:HashMap、HashTable、TreeMap。TreeMap是基于红黑树对TreeMap中所有key进展排序。HashMap和HashTable主要区别有两点:1、Hashtable是线性平安的,因此性能差些。2、HashMap可以使用null作为key或者value。 集合类还提供了一个工具类Collections。主要用于查找、替换、同步控制、设置不可变集合。 上面是对java集合类的一般概述,下面就set、list、map三者之间的关系进展剖析。 Set与Map的关系。Map集合中所有key集中起来,就组成了一个set集合。所以Map集合提供SetkeySet方法返回所有key组成的set集合。由此可见,Map集合中的所有key具有set集合的特征,只要Map所有的key集中起来,它就是一个Set集合,这就实现了Map到Set的转换。同时,如果把Map中的元素看成key-value的set集合,也可以实现从Set到Map之间的转换。HashSet和HashMap分别作为它们的实现类。两者之间也挺相似的。HashSet的实现就是封装了HashMap对象来存储元素。它们的本质是一样的。类似于HashSet和HashMap的关系,其实TreeMap和TreeSet本质也差不多,TreeSet底层也是依赖TreeMap实现。 Map与List的关系。把Map的key-value分开来看,从另一个角度看,就可以把Map与List统一起来。 Map集合是一个关联数组,key可以组成Set集合,Map中的value可以重复,所以这些value可以组成一个List集合。但是需要注意的是,实质Map的values方法并未返回一个List集合。而是返回一个不存储元素的Collection集合,换一种角度来看对List集合,它也包含了两组值,其中一组就是虚拟的int类型的索引,另一组就是list集合元素,从这个意思上看,List就相当于所有key都是int型的Map。 下面讲解几个相似类之间的差异。 ArrayList和LinkedList。ArrayList是一种顺序存储的线性表,其底层是采用数组实现的,而LinkedList是链式存储的线性表。其本质就是一个双向链表。对于随机存储比较频繁的元素操作应选用ArrayList,对于经常需要增加、删除元素应该选用LinkedList。但总的来说ArrayList的总体性能还是优于LinkedList。 HashSet与HashMap的性能选项。主要有两个方面:容量和负载因子(尺寸/容量)。较低负载因子会增加查询数据的性能,但是会降低hash表所占的内存开销。较高负载因子那么反之,一般对数据的查询比较频繁,所以一般情况下初始容量应该大一点,但也不能太大,否那么浪费内存空间。展开阅读全文
咨信网温馨提示:1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前可先查看【教您几个在下载文档中可以更好的避免被坑】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时联系平台进行协调解决,联系【微信客服】、【QQ客服】,若有其他问题请点击或扫码反馈【服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【版权申诉】”,意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:0574-28810668;投诉电话:18658249818。




java集合分类总结.doc



实名认证













自信AI助手
















微信客服
客服QQ
发送邮件
意见反馈



链接地址:https://www.zixin.com.cn/doc/4515652.html