* Collection集合
* 集合概念
是java提供的一种容易可以存放数据,和数组不同,数组的长度是不可变的,集合的数组是可变的
* 集合体系结构
collection
list set
ArrayList LinkedLIst HashSet TreeSet
* 单列集合顶层父接口Collection的通用方法
add(E e);把指定对象添入集合中,如果没有指定数据类型可以存放任意数据类型,如果指定,只能存放哪一种
remove(E e):把给定的元素在集合中删除
clear():清空集合中的元素
isEmpty():判断集合中是否为空
size():获取集合的长度
Object[] toArray(): // 把集合中的元素,存储到数组中
* Iterator迭代器
* Iterator接口介绍
// Iterator接口里面的方法都需要使用对象来调用!所有的单列集合都有iterator()方法(就可以得到Iterator接口的实例对象)
Collection c=new ArrayList();
iterator it=c.iterator();
it.hasNext();判断集合中是否还存在下一个元素
it.next():获取集合的下一个元素
用迭代器遍历集合(有集合中没有元素异常和并发修改异常)
while(it.hasNext()){
System.out.println(it.next());
}
* 增强for循环
for(数据类型 变量名:集合){
System.out.println(变量名)
}
快捷键:集合名.iter+回车
* 泛型
* 泛型概述
集合中是可以存放任意对象的,只要把对象存储集合后,那么这时他们都会被提升成Object类型。当我们在取出每一个对象,并且进行相应的操作,这时必须采用类型转换。
* 泛型的好处(泛型只对编译时期有效,如果在运行时期添加数据是不会发生编译报错的)
把运行时的错误提前到了编译时期
避免了类型转换出错的问题
* 泛型的定义与使用
泛型类:public class类名<E> 在创建对象的时候确定泛型类型
泛型接口:public interface 接口名<E> 定义实现类的时候确定接口的泛型,如果还不确定,可以在创建实现类对象的时候确定泛型类型
泛型方法: public <E> void 方法名(参数) 在调用方法的时候确定泛型类型
* 泛型通配符
<?>:当使用泛型类或者泛型接口作为参数传递的话,不知道传递过来的参数是什么类型所以就要用<?>表示,
<?extends 类>,只能接受这个类和他的子类
<?super 类>只能接受这个类和他的父类
* 数据结构
* 常见数据结构(栈、队列、数组、链表)
栈:先进后出
队列:先进先出
数组:
查找快,增删慢
链表:
增删快,查找满
* List接口
* List接口介绍
可重复,有序,有索引
* List接口中常用方法
add,remove,get,set
* ArrayList集合
底层的数据结构是数组,查找快,增删满
* LinkedList集合
底层的数据结构是链表,查找慢,增删快