Java程序设计-项目驱动式教程06使用集合实现学生信息管理_第1页
Java程序设计-项目驱动式教程06使用集合实现学生信息管理_第2页
Java程序设计-项目驱动式教程06使用集合实现学生信息管理_第3页
Java程序设计-项目驱动式教程06使用集合实现学生信息管理_第4页
Java程序设计-项目驱动式教程06使用集合实现学生信息管理_第5页
已阅读5页,还剩50页未读 继续免费阅读

下载本文档

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

文档简介

讲师:XXX时间:

月目录CONTENTWS01.项目开发环境搭建02.学生成绩管理03.学生基本信息管理04.不同类别学生信息管理05.学生基本信息查找与计算目录CONTENTWS06.使用集合实现学生信息管理07.学生信息管理系统异常处理08.使用文件实现学生信息存储09.使用JDBC实现学生信息管理10.图书管理系统设计与实现项目

六使用集合实现学生信息管理项目1项目开发环境搭建任务一List任务二

Set任务三

Map知识目标了解集合,以及常用的集合接口和实现类,熟悉

Collection

接口和

Iterator

提供的常用方法。了解

List

的特点,List

接口提供的常用方法,以及

ArrayList

LinkedList

的区别,掌握ArrayList类和LinkedList类提供的常用方法。了解

Set

的特点,以及

HashSet

TreeSet

的区别,掌握

HashSet

类和

TreeSet类提供的常用方法。了解

Map

的特点,Map

接口提供的常用方法,以及

HashMap

TreeMap

的区别,掌握HashMap类和TreeMap类提供的常用方法。能力目标能够使用集合对数据进行增删改查操作。能够根据不同的应用场景选择合适的集合解决实际问题。素养目标增强包容与合作的团队意识。树立职责分明与高效协作的合作理念。点击跳过情境扫码观看“使用集合实现学生信息管理”视频,讨论并回答下列问题问题1:简述

Java

中不同集合的区别,并选择适用于学生信息管理的集合。问题2:在Java中,如何遍历集合?扫码学习使用集合实现学生信息管理任务一ListJava数组特性

数组长度固定,创建后不可改变,适用于存储固定数量的数据元素。Java集合介绍

集合长度可变,用于存储和操作长度不确定的数据,只能存储对象,不支持基本类型。Java提供了一个统一的数据处理架构,集合框架,它涵盖了丰富的接口、实现类及方法,均在java.util包中。Java集合框架概述集合框架组成

集合框架包括多种接口如List、Set、Map,以及ArrayList、LinkedList、HashSet、HashMap等实现类,支持高效数据管理。集合分类Java中集合接口主要分为Collection和Map,Collection又细分为List和Set。接口关系椭圆表示接口,矩形表示接口的实现类。集合接口及其实现类的关系方

法返回值类型说

明add(Objecto)boolean将元素添加到集合中addAll(Collectionc)boolean将集合c中的所有元素添加到集合中remove(Objecto)boolean如果集合中有与o相匹配的元素,则删除元素oremoveAll(Collectionc)void从集合中删除集合c中的所有元素retainAll(Collectionc)void从集合中删除集合c中不包含的元素clear()void删除集合中的所有元素size()int返回集合中元素的数量isEmpty()boolean判断集合是否为空contains(Objecto)boolean判断集合中是否包含元素ocontainsAll(Collectionc)boolean判断集合中是否包含集合c中的所有元素toArray()Object[]返回一个包含集合中所有元素的数组toArray(Object[]a)Object[]返回一个包含集合中所有元素的数组。如果数组

a长度足够,则将元素存入

a

中,否则创建新数组存储元素iterator()Iterator返回一个迭代器,用于遍历集合中的所有元素Collection接口提供的常用方法(1)(2)(3)hasNext()检查集合中是否存在下一个元素,即迭代器是否指向集合的末尾。next()获取集合中的下一个元素。remove()删除最近一次使用next()方法获取的元素迭代器(Iterator)不直接存储元素,而是指向集合中的元素,使用它可以遍历集合中的所有元素,并且可以在遍历过程中删除元素。Iteratorit=collection.iterator(); //返回一个迭代器while(it.hasNext()){ //循环检查集合中是否存在下一个元素Objectobj=it.next(); //获取下一个元素//判断获取的元素是否满足删除条件,如果满足则删除元素if(shouldRemove(obj)){it.remove();}}示例remove()方法必须紧跟在

next()方法之后,且每次使用

next()方法后最多调用一次remove()方法。List(列表)是一个允许包含重复元素的集合,适用于需要顺序存储和频繁访问数据的场景。List接口除继承了Collection接口提供的所有方法外,还提供了一些涉及元素位置的其他方法。方

法返回值类型说

明add(intindex,Objectelement)void将元素element添加到列表的指定位置indexaddAll(intindex,Collectionc)boolean将集合c中的所有元素添加到列表的指定位置indexget(intindex)Object返回列表中指定位置index的元素indexOf(Objecto)int返回指定元素

o

在列表中第一次出现的位置。如果列表中不包含元素o,则返回−1lastIndexOf(Objecto)int返回指定元素

o

在列表中最后一个出现的位置。如果列表中不包含元素o,则返回−1remove(intindex)Object删除指定位置index的元素set(intindex,Objectelement)Object将指定位置

index

的元素替换为指定元素

element,并返回该位置的原元素listIterator()ListIterator返回一个列表迭代器,用于遍历列表中的所有元素listIterator(intindex)ListIterator返回一个列表迭代器,用于遍历列表中指定位置index(包含)之后的所有元素subList(intfromIndex,inttoIndex)List返回一个子列表,该子列表包含原列表中从指定位置fromIndex(包含)到toIndex(不包含)的元素,对子列表进行更改(如添加、删除和修改),原列表也进行相应更改List接口提供的常用方法动态数组特性基于动态数组实现,允许包含多个null元素,支持快速随机访问。扩容机制容量不足时自动创建更大数组并复制元素,确保线性存储结构。插入删除效率中间位置操作需复制数组,速度较慢,影响性能表现。适用场景适用于随机访问频繁、插入删除较少的场景,提升数据读取效率。

使用指定集合c创建ArrayList类对象。ArrayList(Collectionc)创建一个空的ArrayList类对象,初始容量为10。ArrayList()

创建一个空的但具有指定初始容量size的ArrayList类对象。ArrayList(intsize)(1)(2)(3)ArrayList类构造方法【运行结果】实例:6-1

使用ArrayList类【参考代码】/*ArrayListTest.java*/packageproject6.example6_1;importjava.util.*;……(详见教材)

LinkedList

是一种基于双向链表实现的有序列表,允许包含多个

null

元素,同时支持将新添加的元素插入指定位置。

创建一个空的LinkedList类对象。(1)LinkedList()构造方法

使用指定集合c创建LinkedList类对象。(2)LinkedList(Collectionc)方

法返回值类型说

明addFirst(Objecto)void将指定元素o添加到列表的开头addLast(Objecto)void将指定元素o添加到列表的末尾getFirst()Object返回列表开头的元素removeFirst()Object删除并返回列表开头的元素getLast()Object返回列表末尾的元素removeLast()Object删除并返回列表末尾的元素

LinkedList类提供的常用方法【运行结果】实例:6-2

使用LinkedList类【参考代码】/*LinkedListTest.java*/packageproject6.example6_2;importjava.util.*;……(详见教材)

123实施流程在项目

src

目录下的

project6

包中新建

task1

包在

task1

包中新建

Main

类运行

Main

类在

task1

包中新建

StudentManage

类34扫码学习使用List实现学生基本信息管理List集合概述LinkedList类List概述ArrayList类任务二Set元素访问特性Set无法通过索引定位元素,但支持高效存在性检测,适用于去重与成员校验场景。方法实现来源该接口未定义专属方法,完全沿用Collection类方法体系,确保基础操作一致性。Set(集)是一个不允许包含重复元素的集合,它能自动去除重复的元素,适用于需要判断元素唯一性的场景。定位HashSet

是一种基于哈希表实现的无序集,只允许包含一个

null

元素。特性HashSet

具有高效查找、唯一性约束和无序存储等特性,适用于需要去重或快速判断元素是否存在的场景。哈希表

哈希表又称散列表,它是一种通过哈希函数将键映射到存储位置的数据结构,支持高效的插入、查找和删除操作。哈希函数可以将任意大小的键转换为固定范围的哈希值,系统根据哈希值可以确定数据的存储位置。创建一个空的HashSet类对象。(1)HashSet()

创建一个空的但具有指定初始容量size的HashSet类对象。(2)HashSet(intsize)使用指定集合c创建HashSet类对象。(3)HashSet(Collectionc)HashSet类a构造方法【运行结果】实例:6-3

使用HashSet类【参考代码】/*HashSetTest.java*/packageproject6.example6_3;importjava.util.*;……(详见教材)

TreeSet

是一种基于红黑树实现的有序集,不允许包含

null

元素。TreeSet

具有唯一性约束和自动排序等特性,适用于需要高效排序且元素不重复的场景。红黑树

红黑树是一种自平衡的二叉查找树,它通过特定的规则和操作来维护树的平衡,确保在高效查找的同时,也能高效地进行插入和删除操作。创建一个空的TreeSet类对象。(1)TreeSet()使用指定集合c创建TreeSet类对象。(2)TreeSet(Collectionc)TreeSet类构造方法方

法返回值类型说

明first()Object返回集中的第一个元素last()Object返回集中的最后一个元素pollFirst()Object删除并返回集中的第一个元素。如果集为空,则返回nullpollLast()Object删除并返回集中的最后一个元素。如果集为空,则返回nullsubSet(ObjectfromElement,ObjecttoElement)SortedSet<Object>返回一个子集,该子集包含原集中在fromElement(包含)和toElement(不包含)之间的元素headSet(ObjecttoElement)SortedSet<Object>返回一个子集,该子集包含原集中在toElement(不包含)之前的元素tailSet(ObjectfromElement)SortedSet<Object>返回一个子集,该子集包含原集中在fromElement(包含)之后的元素TreeSet类提供的常用方法【运行结果】实例:6-4

使用TreeSet类【参考代码】/*TreeSetTest.java*/packageproject6.example6_4;importjava.util.*;……(详见教材)

使用Set实现班级信息管理扫码学习123实施流程在项目

src

目录下的

project6

包中新建

task2

包在

task2

包中新建

ClassManage

类在

task2

包中新建

Main

类4运行

Main

类SetSet概述HashSet类TreeSet类任务三MapMap数据结构Map由键值对构成,键唯一且不可重复,值可对应多个键。添加元素需完整键值对,检索时通过键获取唯一值。Map操作规范

插入数据需指定键与值,查询仅支持键到值的单向映射。键的唯一性确保数据无冗余,值可重复存储不同键。Map(映射)是一个以键值对形式存储数据的集合,它能通过键快速查找对应的值,适用于需要通过特定标识获取信息的场景。方

法返回值类型说

明put(Objectkey,Objectvalue)Object将指定键

key

和值

value

添加到映射中。如果映射中不存在键key,则将键key和值

value添加到映射中并返回null;如果映射中已经存在键key,则用值

value

覆盖原来的值并返回原来的值putIfAbsent(Objectkey,Objectvalue)Object如果映射中不存在键key,则将键

key

和值value添加到映射中并返回

null;如果映射中已经存在键

key,则返回该键对应的值(该值可以为null)putAll(Mapm)void将指定映射m中的所有键值对添加到映射中remove(Objectkey)Object根据指定键

key

删除映射中的键值对。如果映射中已经存在键

key,则删除键值对并返回该键对应的值;如果映射中不存在键key,则直接返回nullclear()void清空映射中的所有键值对

Map接口提供的常用方法

Map接口提供的常用方法(续表)方

法返回值类型说

明get(Objectkey)Object返回映射中指定键

key

对应的值。如果映射中不存在键key,则返回nullcontainsKey(Objectkey)boolean判断映射中是否包含指定键keycontainsValue(Objectvalue)boolean判断映射中是否包含指定值valuesize()int返回映射中键值对的个数isEmpty()boolean判断映射是否为空keySet()Set返回映射中所有键组成的Set。如果从

Set

中删除元素,则原映射中对应的键值对也被删除values()Collection返回映射中所有值组成的

Collection。如果从

Collection中删除元素,则原映射中对应的键值对也被删除entrySet()Set返回映射中所有键值对组成的

Set。如果从

Set

中删除元素,则原映射中对应的键值对也被删除HashMap

是一种基于哈希表实现的无序映射,不保证键值对的顺序。HashMap

中的键唯一,允许包含

null

键和

null

值。HashMap

提供了高效的插入、删除和查找操作,适用于需要高效随机访问键值对的场景。HashMap()创建

温馨提示

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

评论

0/150

提交评论