资源描述:
《java06数组与集合框架.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、数组与集合框架金杰目标数组的拷贝数组的排序、查找Java的集合框架List接口实现类ArrayList和LinkedListSet接口实现类HashSet和TreeSetMap接口实现类HashMap和TreeMap历史集合类的用法怎样保存你的对象?数组-简单的线性序列高效率容量固定(动态数组)类型识别类型相同能保存基本类型如果程序的对象数量有限,且寿命可知,那么这个程序是相当简单的。数组的长度改变注意:数组在创建之后,其长度就不能再改变。但可以把数组的引用指向一个新的数组。举例:intmyArray[]=newint
2、[6];myArray=newint[10];注意:如果没有别的引用指向第一个数组,则在第一个数组中的数据将会全部丢失(被垃圾回收器给回收)。数组间的复制publicstaticvoidarraycopy(Objectsrc,intsrcPos,Objectdest,intdestPos,intlength)参数:src-源数组。srcPos-源数组中的起始位置。dest-目标数组。destPos-目标数据中的起始位置。length-要复制的数组元素的数量。举例:intsource[]={1,2,3};intdest[
3、]={5,6,7,8};System.arraycopy(source,1,dest,1,source.length-1);复制结果:dest:5,2,3,8数组的内存分配图基本数据类型一维数组内存分配栈内存堆内存num0088:44000088:4400123newint[3]产生的对象num20088:4406123newint[3]产生的对象0088:4406对象数组的内存分配堆内存ss0088:44000088:4400Student[]ss;ss=newStudent[3];newstudents[3]
4、产生的对象nullnullnull栈内存对象数组的内存分配堆内存ss0088:4400Student[]ss;ss=newStudent[3];ss[0]=newStudent(“lisi”,18);0088:4400newstudents[3]产生的对象nullnullstudent[0]标识的Student对象lisi180088:46600088:4660栈内存0088:4480ss2nullnull0088:46600088:4480数组的相关操作数组的排序:Arrays.sort()。对象数组的
5、排序需要定义自然比较规则或实现比较器在已排序的数组中查找某个元素:Arrays.binarySearch()。注:在使用Arrays.binarySearch()搜索数组之前请确保数组已经过了排序.数组的缺陷一般来说,程序都是根据具体情况在不断地创建新的对象,而这些情况又只有在程序运行的时候才能确定。不到运行时你是不会知道你到底需要多少对象,甚至是什么类型的对象。所以你不能指望用命名的reference来持有每个对象:MyObjectmyReference;原因就在于,你不可能知道究竟需要多少这样的对象。数组的不足不能
6、自动调整大小不能实现快速的添加和删除对象不能存放不同类型的对象不能实现key_value如何解决这个问题?集合框架集合是包含一组相关数据元素的对象,它提供了对其所包含的各种元素的操作。所谓框架就是一个类库的集合。集合框架就是一个用来表示和操作集合的统一的架构,包含了实现集合的接口与类。集合框架接口是表示集合的抽象数据类型算法是对实现接口的对象执行计算的方法实现是接口的实际实现集合框架包含三个组件集合框架中的接口所谓框架就是一个类库的集合。集合框架就是一个用来表示和操作集合的统一的架构,包含了实现集合的接口与类。集合框架
7、中的接口Collection:集合层次中的根接口,JDK没有提供这个接口直接的实现类。Set:不能包含重复的元素。SortedSet是一个按照升序排列元素的Set。List:是一个有序的集合,可以包含重复的元素。提供了按索引访问的方式。Map:包含了key-value对。Map不能包含重复的key。SortedMap是一个按照升序排列key的Map。集合框架中的实现类SortedSetSetListMapHashSetLinkedHashSetTreeSetArrayListLinkedListSortedMapHas
8、hMapTreeMapArrayListArrayList:我们可以将其看作是能够自动增长容量的数组。利用ArrayList的toArray()返回一个数组。Arrays.asList()返回一个列表。迭代器(Iterator)给我们提供了一种通用的方式来访问集合中的元素。迭代器的工作原理返回的元素删除的元素next()remov