java学习笔记之java集合_第1页
java学习笔记之java集合_第2页
java学习笔记之java集合_第3页
java学习笔记之java集合_第4页
java学习笔记之java集合_第5页
全文预览已结束

下载本文档

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

文档简介

1、1 概念:集合类主要负责保存、装其他数据,因此集合类也被称为容器类。1.储存对象可以考虑: 1 数组 2 集合。2.数组储存对象的特。 studentstu=newstudent20; 弊端 1.一旦创建,其长度不变。 2.真实的数组存放的对象的个数不可知的。3.集合:分为 collection 和 map 两种体系注意: 、集合只能存放对象。比如你存一个int 型数据 1 放入集合中,其实它自动转换成 integer 类后存入的, java中每一种基本类型都有对应的引用类型。 、集合存放的多个对象的引用,对象本身还放在堆内存中。 、集合可以存放不同类型,不限数量的数据类型。collectio

2、n 接口:list 接口:存储元素无序、不可重复的集合-类似高中的 “ 集合”-arraylist (主要的实现类), linkedlist ,vector set 接口:存储元素有序,可重复的集合-” 动态” 数组(无序性! =随机性)-hashset,linkedhashset,treeset collection 使用的例子 : 元素: collection.a ();删除指定元素 :collection.remove (); 删除所有元素 (collection.clear) :collectionc=newarraylist();c.a(bob);collection.removea

3、ll(c); 判断否为空 :collection.isemrty(); 判断集合中的元素否完全相同:equals(objectobj) 利用增强 for 循环遍历集合 :for(objectobj:collection)system.out.println(obj); 利用迭代器 :iterator:iteratoriterator=collection.iterator(); while(iterator.hasnext() objectobj=iterator.next(); system.out.println(obj); 2 1.iterator: 迭代器,它 java集合的顶层接口(

4、不包括map 系列的集合, map 接口map 系列集合的顶层接口)objectnext() :返回迭代器刚越过的元素的引用,返回值object,需要强制转换成自己需要的类型booleanhasnext() :判断容器内否还有可供访问的元素voidremove() :删除迭代器刚越过的元素/ 产生一个 list 集合,典型实现为 arraylist 。listlist=newarraylist(); / 三个元素list.a(tom); list.a(bob); list.a(marry); / 构造 list 的迭代器iteratorit=list.iterator(); / 通过迭代器遍历

5、元素while(it.hasnext() objectobj=it.next(); system.out.println(obj); 2.arraylist ,list 主要的实现类 : list 常用方法: voida(intindex,objectele) :在指定的索引 index 为只元素 ele()objectget(intindex) 获取指定的元素(查)intindexof(objectobj) :返回 obj 在集合中首次出现的位置,没有的话返回-1,(获得指定对象的索引)intlastindexof(objectobj) :返回 obj 在集合中最后一次出现的位置,没有的话返

6、回-1,objectremove(intindex) 删除指定索引位置的元素(删)objectset(intindex,objectele) 设置指定索引位置的元素(改)listsublist(intfromindex,inttoindex)返回从 fromindex 到 toindex 结束的一个 list publicvoidtext() listlist=newarraylist(); list.a(121); 3 list.a(122); list.a(newstring(aa); list.a(0,444); system.out.println(list);/输出: 4441211

7、22aa objectobj=list.get(1); system.out.println(obj);/输出的第二个元素: 121 list.set(2,1); system.out.println(list);/输出: 4441211aa inti=list.indexof(1); system.out.println( 索引为: +i);/ 输出: 2 system.out.println(list.indexof(126)/输出-1 system.out.println(list.sublist(0,3);/输出 444,121,1 3.hashset,set 主要的实现类 :(set

8、 接口 collection 的子接口, set 接口没有额外的方法)特:不能保证元素的顺序;不可重复;不线程的;集合元素可以为null; sethashset=newhashset(); / 类 a 的 equals 方法总返回 true,但没有重写其 hashcode()方法。不能保证当前对象 hashset 中的对象classa publicbooleanequals(objectobj) returntrue; / 类 b 的 hashcode()方法总返回 1,但没有重写其 equals()方法。不能保证当前对象 hashset 中的对象classb publicinthashcod

9、e() return1; / 类 c的 hashcode()方法总返回 2,且有重写其 equals() 方法classc 4 publicinthashcode() return2; publicbooleanequals(objectobj) returntrue; publicclasshashsettest publicstaticvoidmain(stringargs) hashsetbooks=newhashset(); / 分别向 books 集合中两个 a 对象,两个 b 对象,两个 c 对象books.a(newa(); books.a(newa(); books.a(new

10、b(); books.a(newb(); books.a(newc(); books.a(newc(); system.out.println(books); map 接口:存储 “ 键-值” 对的数据;1.具有映关系 “ key -value 对” 的集合 -类似于高中的 “ 函数” y=f(x)(x1,y1)(x2,y2)。key相当于变量 value 相当于因变量。严格来说map 并不一个集合,而两个集合之间的映关系。2.因为 map 集合即没有实现于collection 接口,也没有实现iterable 接口,所以不能对 map 集合进行 for-each 遍历。map 遍历:maph

11、ashmap=newhashmap(); / 元素到 map 中hashmap.put(key1,value1); hashmap.put(key2,value2); hashmap.put(key3,value3); hashmap.put(key4,value4); hashmap.put(key5,value5); 5 / 删除 map 中的元素 ,通过 key 的值hashmap.remove(key1); / 通过 get(key)得到 map 中的 value objectstr1=hashmap.get(key1); / 可以通过方法来 map 中的元素hashmap.put(k

12、ey2,key2的 value); / 通过 map.values()方法得到 map 中的 value 集合collectionvalue=hashmap.values(); for(objectobj:value) /system.out.println(obj); / 通过 map.keyset()得到 map 的 key 的集合,然后通过get(key) 得到 value setset=hashmap.keyset(); for(stringstr:set) objectobj=hashmap.get(str); /system.out.println(str+=+obj); / 通过 map.entryset() 得到 map 的 entry 集合

温馨提示

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

评论

0/150

提交评论