上节回顾:
抽象类和接口。
什么是抽象类—abstract
什么是接口 --interface implements
抽象类的特点。
接口的特点。
抽象类和接口的**。
抽象类和接口的好处。
接口多继承。
类对接口的多实现。
本节课程:
数组: 存放相同数据类型的一组有序集合。
数组也是一个容器,用来存放数组,但是有2个局限性。
1) 数组一旦定义好,长度就不能改变。
2) 数组中存放的数据要求是相同数据类型。
本单元学习的集合,与数组不同的地方时,容量是可以变动,另外数据类型也可以不同,还有一个不同之处,我们队数组中的数据操作也具有一定的局限性。本单元学习的集合对数据的可操作性更加灵活。
集合完全可以当做可以容纳东西的一个容器,在程序不同的集合就好像不同的容器一样,分别用来存放不同状态的数据。
collection : 本意是收纳的意思,也可以理解容器的意思。
在j**a中collection是一个接口,是集合层次结构的一个根接口,也就是说很多集合类都是collection接口的实现类。
collection表示一组对象,这些对象可以成为collection容器的元素,这些元素有什么特点:有些允许有重复的元素,还有一些不允许有重复的元素。还有一些是有序,另外一些事无序。
在jdk中,collection接口一般不直接使用,它派生出两个主要子类set和list。
collection接口中常用的抽象方法:
add(ee)
确保此 collection 包含指定的元素(可选操作)。
clear()
移除此 collection 中的所有元素(可选操作)。
contains(objecto)
如果此 collection 包含指定的元素,则返回 true
isempty()
如果此 collection 不包含元素,则返回 true。
iterator()
返回在此 collection 的元素上进行迭代的迭代器。
remove(objecto)
从此 collection 中移除指定元素的单个实例,如果存在的话(可选操作)。
list:是一个collection接口的子接口,在包下,list是一个有序的集合,该集合可以实现向集合中准确的在某个位置上添加一个元素。也可用通过指定的索引位置获取集合中的中的某个具体的元素。
list集合是允许有重复的元素的。也可以允许放null,甚至多个null值。
set是一个collection接口的子接口,set集合不包含重复的元素,最多包含一个null元素。
arraylist
linkedlist
stackvector
arraylist是接口list的一个具体实现类,该类的大小是一个可变的数组,可以对集合中的元素进行操作,允许有null值。每个 arraylist 实例都有一个容量。该容量是指用来存储列表元素的数组的大小。
它总是至少等于列表的大小。随着向 arraylist 中不断添加元素,其容量也自动增长。arraylist实现类没有实现同步,就是线程不安全。
arraylist的三个构造方法:
arraylist类的方法的使用:
add(ee)
将指定的元素添加到此列表的尾部。
add(intindex, eelement)
将指定的元素插入此列表中的指定位置。
clear()
移除此列表中的所有元素。
contains(objecto)
如果此列表中包含指定的元素,则返回 true。
get(intindex)
返回此列表中指定位置上的元素。
indexof(objecto)
返回此列表中首次出现的指定元素的索引,或如果此列表不包含元素,则返回 -1。
isempty()
如果此列表中没有元素,则返回 true
lastindexof(objecto)
返回此列表中最后一次出现的指定元素的索引,或如果此列表不包含索引,则返回 -1。
remove(intindex)
移除此列表中指定位置上的元素。
remove(objecto)
移除此列表中首次出现的指定元素(如果存在)。
set(intindex, eelement)
用指定的元素替代此列表中指定位置上的元素。
size()
返回此列表中的元素数。
linkedlist是list接口的实现类,链表列表的实现,允许所有元素可以重复,而且允许有null值。linkedlist 类还为在列表的开头及结尾 get、remove 和 insert 元素提供了统一的命名方法。实现不是同步,也就说明线程不安全。
linkedlist常用的操作方法:
addfirst(ee)
将指定元素插入此列表的开头。
addlast(ee)
将指定元素添加到此列表的结尾。
getfirst()
返回此列表的第一个元素。
getlast()
返回此列表的最后一个元素。
arraylist和linkedlist的区别:
相同点:两者都是list的实现类,集合中的数据,都是有序,可以重复,线程不安全。
不同点:前者实现是线性表结构 , 后者实现是链表结构
前者适合查询数据 ,后者适合插入数据和删除数据。
后者可以通过对链表头和链表未进行相关操作,增加操作的复杂性。
iterator:对 collection 进行迭代的迭代器。
hasnext()
如果仍有元素可以迭代,则返回 true。
next()
返回迭代的下一个元素。
set是一个不包含重复元素的 collection。
set的实现类:hashset和treeset。
hashset是set的一个实现类,在包中。由哈希表(实际上是一个 hashmap 实例)支持。它不保证 set 的迭代顺序;特别是它不保证该顺序恒久不变。
此类允许使用 null 元素,但是set集合中不能有重复的元素。hashset不是同步的,也就是说线程不安全。
treeset: 使用元素的自然顺序对元素进行排序,此实现不是同步的。
collections和collection特别相似,但是两者有很大的区别,前者只是一个类,后者是一个集合的接口,功能完全不一样,可以把collections当做collection的一个辅助工具类。collections中有很多静态方法,这些方法可以直接操作collection集合对象。
collections是包的一个类。
学习collections类就是学习里面的一些静态方法,实现对集合的操作。
addall(collectionc, t...elements)
将所有指定元素添加到指定 collection 中。
binarysearch(list>list, tkey)
使用二分搜索法搜索指定列表,以获得指定对象。
copy(listdest, listsrc)
将所有元素从一个列表复制到另一个列表。
高中英语必修1Unit1课堂笔记
高中英语必修1课堂笔记 unit 1 人教版 1.upset 1 upset sth.sb 使某人烦恼,使某人心烦意乱。2 be upset about 从句对。难过 失望 be upset about him his failure 2.ignore ignorant adj 1 ignore s...
地理高效271课堂模式
271 高效课堂创新模式。年级 高三。科目 地理。包科领导 张申。一级部备课组长 郑明香。二级部备课组长 赵延涛。271 高效课堂模式。改革出新,效率是学生学习的生命线。深化课堂改革,抓住课堂主阵地,充分利用课堂45分钟,深入贯彻 271高效课堂 精神,力求高效精彩的课堂,真正将课堂变成学生自主发展...
2019课堂活动方案版
本文目录。1.2018课堂活动方案。2.第二课堂活动方案。3.小学 课堂教学专题研究月 活动方案。4.翻转课堂 教学模式 活动方案。为进一步推进我校 美丽课堂 建设,深化 学本课堂 工作 激励广大教师不断投身于课堂教学改革,促进教师的专业成长,切实提高课堂教学的针对性和高效性 根据 xx市教育局关于...