《Java高级程序设计》课件——学习情境2 接口.pptx
;一、应用场景
二、List接口
三、ArrayList常用方法
四、List一般用法;3;二、List接口;List集合中允许出现重复的元素;
List集合中所有的元素是以一种线性方式进行存储的;
List集合中的元素可以通过索引(顺序号:元素在集合中处于的位置信息)来访问;
List集合中的元素是有序的,即元素的存入顺序和取出顺序一致。;2.2List接口的实现类;1.ArrayList集合
java.util.ArrayList是基于数组实现的非线程安全的集合。它由数组实现,随机访问效率高。ArrayList是最常用的集合。
特点:元素增删慢,但查找快。
适合场景:适合经常查询数据、遍历数据的场合。
由于日常开发中使用最多的功能为查询数据、遍历数据,所以ArrayList是最常用的集合。
;2.LinkedList集合
java.util.LinkedList是基于链表实现的非线程安全的集合。
特点:元素增删快,但查找慢
适合场景:适合经常添加元素、删除元素的场合。
在开发时,LinkedList集合也可以作为堆栈,队列或双端队列的结构使用
;;2.3List接口实现类的适用场合;三、ArrayList常用方法;四、List接口一般用法;1.创建一个List接口的对象;3.删除指定位置的元素;4.遍历List;小结;;一、任务描述
二、任务分析设计
三、任务实施
四、运行结果
;19;二、任务分析、设计;其类图如图2-1所示;三、任务实施;2.创建测试类;第一步,创建list对象userList;第二步,向集合中添加元素。;首先创建User的对象,再调用list集合的set()方法替换列表中指定位置的元素;调用list集合的remove(intindex)方法移除列表中指定位置的元素;第五步,使用列表迭代器;hasNext()方法,如果迭代器具有更多元素,则返回true。
next()方法,返回迭代器中的下一个元素。;利用迭代器最大的好处就程序员不用再去为了索引越界等等异常所苦恼了,只需在迭代过程中对列表元素进行操作即可。;第六步,遍历list集合;方法1:使用迭代器,进行循环遍历;方法2:使用增强for循环;for(Usertmp:userList){
System.out.println(tmp.toString());
};此方法需重点掌握。这种方法在遍历数组和Map集合的时候同样适用。;方法3:使用List集合的get(i)方法进行for循环遍历,获取集合中的每个元素;四、运行结果;小结;;一、应用场景
二、Set接口
1.Set接口
2.Set接口的实现类
3.Set接口实现类的适用场合
三、HashSet的常用方法
四、Set接口的一般用法;41;二、Set接口;不允许出现重复元素;
集合中的元素位置无顺序(存取和读取的顺序可能不一样);
Set集合没有索引;
有且仅有一个值为null的元素。;2.2Set接口的实现类;1.HashSet
底层是包装了一个HashMap实现的
采用HashCode算法来存取集合中的元素,具有比较好的读取和查找性能
通过equals()和HashCode()来判断两个元素是否相等
非线程安全
;2.LinkedHashSet
继承HashSet,本质是LinkedHashMap实现
集合中的元素是有序的,根据HashCode的值来决定元素的存储位置,同时使用一个链表来维护元素的插入顺序
非线程安全
;3.TreeSet
是一种排序的Set集合,实现了SortedSet接口,底层是用TreeMap实现的,本质上是一个红黑树
相对HashSet来说,TreeSet提供了一些额外的按排序位置访问元素的方法,例如first(),last(),lower(),higher(),subSet(),headSet(),tailSet()
排序分两种:自然排序(存储元素实现Comparable接口)和定制排序(创建TreeSet时,传递一个自己实现的Comparator对象);2.3Set接口实现类的适用场合;三、HashSet常用方法;四、Set接口的一般用法;1.创建HashSet类的对象;3.删除元素;4.遍历Set的两种方法;方法2,使用增强for循环;小结;;一、任务描述
二、任务分析设计
三、任务实施
四、运行结果
;58;二、任务分析设计;其类图关系如图2-1所示。;三、任务实施;1.创建学生类Student;2编写测试类;第一步,创建Set的对象;第二步,向Set集合中添加元素;第三步,移除集合中指定的元素;第四步,判断Set集合中是否包含指定的元素;第五步,迭代器的