1.List继承体系
语法角度:接口 interface。逻辑角度:线性表。
list 接口继承自 collection 接口,collection接口继承自 lterable
iterable 指具备迭代能力。hasNext boolean是否还有下一个;next() 元素类型 ,取下一个元素。
iterator指迭代器。iterator() Iterator获取迭代器对象。
--->eg:我们有一个容器Collection,具备迭代能力Iterable。如何体现具备迭代能力---提供了iterator方法,获取迭代器Iterator。拿到这个迭代器之后,我们就可以通过hasNext()+next()配合,一次拿到容器中的元素了。
注意:hasNext()==true,next()合法;hasNext()==false,next()异常。没有这个元素(NoSuchElementExc).
iterator:(首字母小写)方法名称,返回一个可以被使用的迭代器。 Iterator:(首字母大写)类名,返回值是一个迭代器。
eg:
2.Collection
interface Collection extends Iterable。所有的Collection都是可以Iterable的。
Collection并没有规定元素时怎么组装起来的。但无论是怎样的组织方式,一个集合(容器)都具备一些公共的特征:添加元素、取出元素、元素是否存在...
3.List
interface List extends Collection。线性表,元素和元素之间出现线性的结构--每个元素都要一个独一无二的位置与其关联,位置(下标)。
问一个List共有多少个元素size()。合法的位置(下标)的取值范围:[0,size)。
[0] 第一个元素,头(head) 。 [size-1] 最后一个元素,尾(tail/last)。除了第一个元素和最后一个元素,都有逻辑上的前一个元素--前驱元素(previous)、后一个元素--后继元素(next)。
排序的能力、下标概念是线性结构独有的。(根据下标获取获取、设置元素)
4.泛型Generic
<...>闭合的尖括号是Java语句中泛型的特征。
定义泛型,类或方法。
使用泛型,学会如何使用别人定义好的泛型(Iterable,Collection,List)。
Java的泛型只在编译阶段起作用。(编译前有用)
Java的泛型只支持引用,不支持基本类型。(只能用于引用类型)
5. 泛型Object[ ]
Object是所有类(包括接口)的祖先类。上层引用可以指向下层对象。
6.包装类:
每种基本类型都有一个一一对应的包装类:
byte --> class Byte;
short --> class Short;
int --> class Integer;
char --> class Character;
boolean --> class Boolean;
float --> Long
按照对象的规则生存,相等性的比较使用equals方法,同一性的比较使用==。
赋值语句(a=b)的正确条件:隐式转换,显示转换。
eg:
PS:包装类型已经是对象,不能使用==比较,一个使用equals进行比较。
7. List(线性表)的特征:
线性表上的元素有逻辑上的前后关系;每个元素都有一个唯一的位置与之相关联--下标 [ 0,size)