ArrayList
底层的数据结构是数组 , 查询块, 增删比较慢. 线程不安全的,效率高
Vector
底层的数据结构是数组 , 查询块, 增删比较慢. 线程安全的,效率低
构造方法: public Vector();
成员方法:
public void addElement(E obj): 添加元素
public E elementAt(int index): 获取index索引处对应的元素
public Enumeration elements(): Vector特有的遍历方式,和Iterator的使用很相近
LinkedList
底层的数据结构是链表 , 查询慢, 增删比较快. 线程不安全的,效率高
栈:先进后出
构造方法: public LinkedList():
成员方法:
public void addFirst(E e): 在第一个位置进行添加元素
public void addLast(E e): 在最后一个位置添加元素
public E getFirst(): 获取第一个元素
public E getLast(): 获取最后一个元素
public E removeFirst(): 删除第一个元素
public E removeLast(): 删除最后一个元素
泛型(Generic) 早期使用Object接收任意类型,容易出现安全隐患 向下转型易出现类转换异常
概述: 把具体的数据类型明确的工作推迟到创建对象或者调用方法的时候
好处:
把运行期的错误提前到编译期
清除黄色警告线
避免强制类型转换
格式:<数据类型1.2.3.。。> 只能是引用数据
应用:
类 class Demo<数据类型>{}
方法 public<数据类型> void show(){};
接口 interface Demo<数据类型>{}
子类
使用泛型 public class InterImpl implements Inter<String>{}
不使用泛型 public class InterImpl<T> implements Inter<T>{}
泛型通配符:
? 表示任意的数据类型
? extends E: 向下限定, ? 表示的是E或E的子类
? super E: 向上限定 , ? 表示的是E或E的父类
增强for循环
简化开发,更高效的遍历数组和集合
格式: for(int a:arr){
System.out.println(a);
}
遍历Collection 迭代器遍历 增强for遍历
遍历list 迭代器遍历 增强for遍历 普通for遍历
静态导入
格式:import static 包名.类名.方法名;
注意事项:当静态导入的方法名和类中方法名一样时,用类名区分
可变参数
定义方法的时候不知该定义多少个参数
格式:public static void add(int a..){} 修饰符 返回值类型 方法名(数据类型... 变量名){}
本质: 数组
注意:可变参数只能定义在参数列表的最后位置
底层的数据结构是数组 , 查询块, 增删比较慢. 线程不安全的,效率高
Vector
底层的数据结构是数组 , 查询块, 增删比较慢. 线程安全的,效率低
构造方法: public Vector();
成员方法:
public void addElement(E obj): 添加元素
public E elementAt(int index): 获取index索引处对应的元素
public Enumeration elements(): Vector特有的遍历方式,和Iterator的使用很相近
LinkedList
底层的数据结构是链表 , 查询慢, 增删比较快. 线程不安全的,效率高
栈:先进后出
构造方法: public LinkedList():
成员方法:
public void addFirst(E e): 在第一个位置进行添加元素
public void addLast(E e): 在最后一个位置添加元素
public E getFirst(): 获取第一个元素
public E getLast(): 获取最后一个元素
public E removeFirst(): 删除第一个元素
public E removeLast(): 删除最后一个元素
泛型(Generic) 早期使用Object接收任意类型,容易出现安全隐患 向下转型易出现类转换异常
概述: 把具体的数据类型明确的工作推迟到创建对象或者调用方法的时候
好处:
把运行期的错误提前到编译期
清除黄色警告线
避免强制类型转换
格式:<数据类型1.2.3.。。> 只能是引用数据
应用:
类 class Demo<数据类型>{}
方法 public<数据类型> void show(){};
接口 interface Demo<数据类型>{}
子类
使用泛型 public class InterImpl implements Inter<String>{}
不使用泛型 public class InterImpl<T> implements Inter<T>{}
泛型通配符:
? 表示任意的数据类型
? extends E: 向下限定, ? 表示的是E或E的子类
? super E: 向上限定 , ? 表示的是E或E的父类
增强for循环
简化开发,更高效的遍历数组和集合
格式: for(int a:arr){
System.out.println(a);
}
遍历Collection 迭代器遍历 增强for遍历
遍历list 迭代器遍历 增强for遍历 普通for遍历
静态导入
格式:import static 包名.类名.方法名;
注意事项:当静态导入的方法名和类中方法名一样时,用类名区分
可变参数
定义方法的时候不知该定义多少个参数
格式:public static void add(int a..){} 修饰符 返回值类型 方法名(数据类型... 变量名){}
本质: 数组
注意:可变参数只能定义在参数列表的最后位置