javase讲义(容器)_第1页
javase讲义(容器)_第2页
javase讲义(容器)_第3页
javase讲义(容器)_第4页
javase讲义(容器)_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、1 Java数组1.1 数组的定义数组是多个相同类型数据的组合,是对这些数据的统一管理。数组的定义方式包括静态定义和动态定义。(例子:ArrayTest1.1)1.2 数组的物理实现方式 数组变量属于引用类型,数组也是对象。数组对象在堆内存中占有连续的内存地址。安装需求分配对应的空间。数组下标从0开始。 数组中的元素可以是任意数据类型,包括基本类型和引用类型。1.3 数组的声明和初始化方式数组的声明方式: String myString; String myString; java语言声明数组的时候,不能指定数组的长度。但在构造数组对象时应当指明长度。 数组的动态初始化。数组的定义与为数组元素

2、分配空间和赋值的操作分开进行。 数组的静态初始化。在定义数组的同时就为数组元素分配空间并赋值。(例子:ArrayTest2.0)1.4 数组的使用方法 定义并new出数组对象后,才可以引用数组中的每个元素,数组的引用方式为:arrayNameindex。 例如:array1、arrayi、arrayi*6。 每个数据都有length属性指明数组长度。数组元素下标从0开始一直到length-1(例子:ArrayTest1.0)当方法返回多个相同类型的结果时,可以考虑使用数组。1.5 数组的优点和缺点数组是一种访问和存储效率最高的容器,但是数组只能存同一种类型的数据,并且数组长度不可变,在整个数组

3、对象的生命周期中是固定的。数组的缺点是长度不可变并且只能装一种类型的数据。数组的优点是访问效率高。数组的优势在于性能而不是灵活性。1.6 多维数组多维数组就是装有数组指针的数组。二维数组可以看成以数组为元素的数组。多维数组的声明和初始化应该从第一维开始到多维。(例子:ArrayTest3.0)1.7 数组的常用方法 在java.util.Arrays中存在一些常用的操作数组的方法,equals()用于比较两个数组是否相等。fill()用某个数填充数组。sort()用于数组排序。binarySearch()查找元素位置。toString()将数组字符串化。hashCode()获取散列码值。(例子

4、ArrayTest4.0)2 Java集合(collection)2.1 容器的概念java中的容器是用于存放其他类的类,和数组类似,但是数组是大小不可变的容器,如果需要使用可变大小的容器必须使用集合类。2.2 集合类API集合类都继承了collection接口,在collection接口中定义了,集合相关的基本方法。例如:add、remove、container和size等方法。2.3 Set接口Set接口继承自collection接口,具有collection接口相应的方法。用Set集合装的元素是无序不可重复的。由于Set中的元素是无序的,所以不能用循环遍历的方式访问。set中的元素是不可

5、重复的。Set一般使用iterator接口进行访问。Iterator的方法包括hasNext(用于判断是否存在下一个元素)和next(用于获取下一个元素)(例子:CollectionTest1.0)Set接口的实现类除了HashSet还有TreeSet。2.4 对象的比较 需要比较两个对象是否相等,jvm会调用equals方法和hashCode方法,对于自定义的引用类型的数据需要重写equals方法和hashCode方法来定义判断相等的规则。你需要保证如果两个对象的hashcode值不等,则equals方法得到的结果必定为false;如果两个对象的hashcode值相等,则equals方法得到

6、的结果未知。你需要保证如果调用equals方法得到的结果为true,则两个对象的hashcode值必定相等;如果equals方法得到的结果为false,则两个对象的hashcode值不一定不同。不同的对象可能会生成相同的hashcode值,只能根据hashcode值判断两个对象不等,判断两个对象是否真正相等,必须通过equals方法。重写equals方法和hashCode方法始终需要在逻辑上保持一致性,并且唯一对象的hashCode要唯一。(例子:CollectionTest2.0)需要比较两个对象的大小,需要实现Comparable,需要重写compareTo方法。(例子:Collectio

7、nTest3.0)2.5 List接口List接口继承自collection接口,具有collection接口相应的方法。用List集合装的元素是有序可重复。由于List中的元素是有序的,所以能用循环遍历的方式访问。list中的元素是可重复的。List接口的实现类包括ArrayList和LinkedList。ArrayList由于底层实现是数组,遍历效率高新增和移除效率低;LinkedList由于底层实现是链表,遍历效率低新增和移除效率高。(例子:CollectionTest4.0)(例子:CollectionTest5.0)2.6 Map接口 Map接口的数据格式为key-value模式也即键值对。根据key去拿value。必须保证key值的唯一性,value可以重复,Map是无序的。Map的遍历需要通过keyset方法借助遍历key值来实现。(例子:CollectionTest6.0)2.7 Collections接口Collections封装了对集合类的常用操作。(例子:CollectionTest7.0)2.8 自动打包解包机制使用集合类的时候,对基础数据类型的操作会产生自动打包解包现象。(例子:CollectionTe

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论