java 集合学习笔记1-Collection 集合遍历 List子类特点.docx

上传人:A*** 文档编号:142725335 上传时间:2020-08-22 格式:DOCX 页数:4 大小:11.81KB
返回 下载 相关 举报
java 集合学习笔记1-Collection 集合遍历 List子类特点.docx_第1页
第1页 / 共4页
java 集合学习笔记1-Collection 集合遍历 List子类特点.docx_第2页
第2页 / 共4页
java 集合学习笔记1-Collection 集合遍历 List子类特点.docx_第3页
第3页 / 共4页
java 集合学习笔记1-Collection 集合遍历 List子类特点.docx_第4页
第4页 / 共4页
亲,该文档总共4页,全部预览完了,如果喜欢就下载吧!
资源描述

《java 集合学习笔记1-Collection 集合遍历 List子类特点.docx》由会员分享,可在线阅读,更多相关《java 集合学习笔记1-Collection 集合遍历 List子类特点.docx(4页珍藏版)》请在金锄头文库上搜索。

1、java 集合学习笔记1-Collection 集合遍历 List子类特点1、集合-集合的由来: 数组长度是固定,当添加的元素超过了数组的长度时需要对数组重新定义,太麻烦,java内部给我们提供了集合类,能存储任意对象,长度是可以改变的,随着元素的增加而增加,随着元素的减少而减少 数组和集合的区别区别1 :数组既可以存储基本数据类型(int float char long double),又可以存储引用数据类型,基本数据类型存储的是值,引用数据类型存储的是地址值集合只能存储引用数据类型(对象)集合中也可以存储基本数据类型,但是在存储的时候会自动装箱变成对象(例如int就存为Interger)区

2、别2:数组长度是固定的,不能自动增长集合的长度的是可变的,可以根据元素的增加而增长 2、集合的体系: Collection(单列集合的根接口) | List(接口:存取顺序一致,有索引,可以重复) Set(接口:存取顺序不一致,无索引,不可以重复) | | | | | ArrayList(数组实现) LinkedList(链表实现) Vector(数组实现) HashSet(Hash算法) TreeSet(二叉树) 3、集合-集合转数组遍历:toArray() 暂时没有加泛型 Collection coll = new ArrayList(); coll.add(new Student(张三,

3、23); /Object obj = new Student(张三,23); coll.add(new Student(李四,24); coll.add(new Student(王五,25); coll.add(new Student(赵六,26); Object arr = coll.toArray(); /将集合转换成数组,使用Object的数组接收 for (int i = 0; i arr.length; i+) Student s = (Student)arri; /向下强转成Student,因为arri本身就是个Student的对象,所以可以强转 System.out.printl

4、n(s.getName() + - + s.getAge(); 4、集合-集合带All功能测试: boolean addAll(Collection c) boolean removeAll(Collection c)/删除的是两个集合的交集 boolean containsAll(Collection c)/判断调用的集合是否包含传入的集合 boolean retainAll(Collection c)/取交集,如果调用的集合改变就返回true,如果调用的集合不变就返回false 例如: Collection c1 = new ArrayList();c1.add(a);c1.add(b);

5、c1.add(c);c1.add(d);Collection c2 = new ArrayList();c2.add(a);c2.add(b);c2.add(c);c2.add(d);c1.addAll(c2); /将c2中的每一个元素添加到c1中,结果a, b, c, d, a, b, c, d /c1.add(c2); /将c2看成一个对象添加到c1中,结果a, b, c, d, a, b, c, d5、集合-使用迭代器遍历: Collection c = new ArrayList(); c.add(a); c.add(b); c.add(c); c.add(d); Iterator i

6、t = c.iterator(); /获取迭代器的引用,是一个接口 while(it.hasNext() /集合中的迭代方法(遍历) System.out.println(it.next(); 自定义对象并遍历: Collection c = new ArrayList(); c.add(new Student(张三,23); c.add(new Student(李四,24); c.add(new Student(王五,25); c.add(new Student(赵六,26); c.add(new Student(赵六,26); Iterator it = c.iterator(); /获取

7、迭代器 while(it.hasNext() /判断集合中是否有元素 /System.out.println(Student)(it.next().getName() + , + (Student)(it.next().getAge(); Student s = (Student)it.next(); /向下转型 System.out.println(s.getName() + , + s.getAge(); /获取对象中的姓名和年龄 6、集合-数据结构之数组和链表 A:数组 查询快修改也快 /可以根据索引查找 增删慢 /增删需要移动其他所有的数据 B:链表 每个数据对象记录了前一个和后一个对

8、象的地址值,查询需要一个个问,增删的话只需要改变数据对象的前后地址值就行,不需要移动其他数据。 查询慢,修改也慢 增删快 7、集合-数据结构之数组和链表 A:List的三个子类的特点ArrayList:底层数据结构是数组,查询快,增删慢。线程不安全,效率高。Vector:底层数据结构是数组,查询快,增删慢。线程安全,效率低。Vector相对ArrayList查询慢(线程安全的)Vector相对LinkedList增删慢(数组结构)LinkedList:底层数据结构是链表,查询慢,增删快。线程不安全,效率高。Vector和ArrayList的区别Vector是线程安全的,效率低ArrayList是线程不安全的,效率高共同点:都是数组实现的ArrayList和LinkedList的区别ArrayList底层是数组结果,查询和修改快LinkedList底层是链表结构的,增和删比较快,查询和修改比较慢共同点:都是线程不安全的

展开阅读全文
相关资源
相关搜索

当前位置:首页 > IT计算机/网络 > 其它相关文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号