集合、加强for、泛型

Collection集合:
Collection是层次结构中的根接口,存储的元素为对象,(也就是说只能存储引用数据类型,不能存储基础数据类型),具体可查询API。
集合与数组的区别:
一、集合只能存放引用数据类型,不能存放基本数据类型,存储基本类型,须要使用基本数据类型对应的包装数据类型;数组能够存听任意数据类型
二、集合建立对象的时候,能够不定义指定长度,也可不指定内容;数组建立对象的时候必须指定长度或者元素。
三、一个集合对象中能够存放多种数据类型,而数组中只能存放一种数据类型。
四、集合的长度是可变的,数组长度是固定的。
选用的规则:当须要一个容器,既不能指定容器的内容,也没法肯定容器的长度时,可使用集合,不然建议使用数组。数组的效率是相对较高数组

Iterator迭代器:
当从集合获取元素的时候,有一个通用的流程,将这个通用的流程描述成了一个接口,这个接口就是Iterator。
迭代器能操做集合也能操做数组!!!
如何操做迭代器
迭代器的经常使用方法;
hasNext()、next()
注意事项:当一次循环中须要屡次使用元素值时,必定不能使用匿名对象,不然会繁盛元素找不到的异常;
当迭代器遍历几个的过程当中,不容许使用集合自身的方法,改变集合的长度。对象

加强for:
加强for的实质就是一个迭代器;加强for只能在JDK1.5以后才能使用;在加强for的内部不容许改变集合的长度。
加强for格式:
for(元素的数据类型 变量名 : 被迭代的集合或数组){}
泛型:
特殊的变量;保存的是引用数据类型;
带泛型的类:类定义格式:
public class 类名<泛型名>{
//成员变量
private 泛型名 name;
//成员方法
修饰符 泛型名 方法名(泛型名 参数名){接口

}
}
对象建立格式:
类名<具体的数据类型> 对象名 = new 类名<具体的数据类型>();
注意事项:<具体的数据类型>在等号左右两边必须保持一致,不能使用多态
泛型的好处:一、能够避免数据类型的强转二、能够将运行时期可能发生的异常提早到了编译时期。
泛型方法:当定义一个类的时候,没有使用泛型,name定义方法的时候,容许针对某一个方法使用泛型
格式:
修饰符 <泛型名> 泛型名 方法名(泛型名 参数名){
这种方法额发回执类名取决于参数的数据类型
}
这种方法调用的时候,能够调用任意数据类型的参数值。
泛型接口:
格式:
public interface 接口名<泛型名>{
抽象方法的返回值和参数类型名

public abstract 泛型名 方法名(泛型名 参数名);
}
因为接口不能直接建立对象,所以接口中的泛型的值有两种赋值的方法;
方法1:定义子类的时候,直接传递;(写死了)
public class 子类 implement 接口名<具体的数据类型>{}
方法2:定义子类的时候,子类也子类也规定泛型,name未来建立子类对象的时候,会一并将泛型的值传递给接口;
格式:
public class 子类<泛型名> implement 接口名<泛型名(必须与子类的泛型相同)>{}
泛型通配符
因为泛型中没有多态,因此采用泛型通配符的形式拜师多种数据类型
格式:
?Extends 具体的数据类型 限定了上限
?Super具体的数据类型 限定了下限io

相关文章
相关标签/搜索