今天天气不错,早上有一点事,所以分享的晚一点,第九天的知识可以说是比较一般重要但是,讲的比较粗糙。。主要是说去就业班在讲,所以就要各位小童鞋多多练了,话不多说。。
第九天
千里之行始于爪,没错就是爪!!!!!!!!!!!
今日内容介绍
1.对象数组
2.集合类之ArrayList
3.学生管理系统案(这个我就不讲了)
一,对象数组
1.数组的概念 :存储的元素为基本类型 比如 int []arr={1,2,3,4}
2.对象s数组 : 存储的元素为引用类型 Student[]stus=new Student[3];
Student代表一个自定义类
Stus数组中stus[0],stus[1],stus[2]的元素数据类型为Student,都可以指向一个Student对象
二.集合类之ArrayList(这里只讲解了这个我想了想还是把集合给大家简单说下吧)
1:我们学习的是面向对象编程语言,而面向对象编程语言对事物的描述都是通过对象来体现的。
为了方便对多个对象进行操作,我们就必须对这多个对象进行存储,而要想对多个对象进行存储,就不能是一个基本的变量,而应该是一个容器类型的变量。
2:到目前为止,我们学习过了哪些容器类型的数据呢? StringBuilder,数组。StringBuilder的结果只能是一个字符串类型,不一定满足我们的需求。
所以,我们目前只能选择数组了,也就是我们前面学习过的对象数组。 但是,数组的长度是固定的,
如果有时候元素的个数不确定的,我们无法定义出数组的长度,这个时候,java就提供了集合类供我们使用。
集合
A,List接口是有序的、可以添加重复元素、也可以添加null,并且可以添加多个
1. Vector
Vector是同步的、同步意味着安全,但效率低。现在开发中基本不用Vector迭代时是用Enumeration迭代器迭代,
不能以Iterator迭代,因为如果数据量 特别大时,迭代会快速失败。
2. ArrayList
ArrayList是异步的、异步意味着效率高,但不安全。
ArrayList是一种顺序存储结构,从数据结构的角度上说,它在查询时平均复杂度低,效率高;在插入或删除时,平均复杂度高,效率低。
ArrayList迭代时是用Iterator迭代器迭代,不能以Enumeration迭代,因为如果数据量特别大时,迭代会快速失败
3. LinkedList
LinkedList是一种双链式结构,从数据结构的角度上说,它删除时平均复杂度低,效率高;在查询时,平均复杂度高,效率低。
LinkedList迭代时是用Iterator迭代器迭代,不能以Enumeration迭代,因为如果数据量特别大时,迭代会快速失败
B,Set接口
Set接口是无序的、不可以可以添加重复元素、可以添加null,但只能添加一个
1.HashSet实现 Set 接口,由哈希表(实际上是一个 HashMap 实例)支持。它不保证 set 的迭代顺序;特别是它不保证该顺序恒久不变。此类允许使用 null 元素
2.SortedSet是Set的子接口,在JDK5之前,TreeSet都是直接实现的SortedSet接口,JDK6新增加了其子接口NavigableSet
C,Map将键映射到值的对象。一个映射不能包含重复的键;每个键最多只能映射到一个值
1.Hashtable是java se中常用类中唯一一个没有按照命名规范定义的一个类名,其中Hashtable中的"t"是小写,而不是大写。
Hashtable是同步的,同步意味着效率低,但是安全
2.HashMap是基于哈希表的 Map 接口的实现。是以键值对的方式存在,可以参考高中代数中的映射来理解。此实现提供所有可选的映射操作,并允许使用 null 值和 null 键。(除了非同步和允许使用 null 之外,HashMap 类与 Hashtable 大致相同。)此类不保证映射的顺序,特别是它不保证该顺序恒久不变。
HashMap是异步的,异步意味着效率高,但是不安全
3.SortedMap进一步提供关于键的总体排序 的 Map。和SortedSet类似,该映射是根据其键的自然顺序进行排序的,或者根据通常在创建有序映射时提供的 Comparator 进行排序。对有序映射的 collection 视图(由 entrySet、keySet 和 values 方法返回)进行迭代时,此顺序就会反映出来。要采用此排序方式,还需要提供一些其他操作(此接口是 SortedSet 的对应映射)
D,常用迭代器
Enumeration迭代器一般专用于对Vector的迭代,不能以Iterator迭代,因为如果数据量特别大时,迭代会快速失败
Iterator迭代器一般用于ArrayList、LinkedList以及Set接口的迭代,不能以Enumeration迭代,因为如果数据量特别大时,迭代会快速失败
ListIterator迭代器是Iterator迭代器的子接口,它只用于对ArrayList及LinkedList的迭代,除了其具备Iterator的功能外,其还具备反序迭代的功能
E,Coolections
Collections是集合的一个工具类,此类完全由在 collection 上进行操作或返回 collection 的静态方法组成。它包含了操作Collection的最长用的一些方法。例如:排序、复制集合、集合中添加集合、随机排序、 让异步的ArrayList等变成同步的ArrayList的方法等
|
|