如何构建一个驱动的集合体系结构?

摘要:集合体系结构 List系列集合:添加的元素有序,可重复,有索引 Collection:是单列集合的祖宗接口,它的功能是全部单列集合都可以继承使用的 set系列集合:添加的元素无序,不重复,无索引 方法名说明 public boolean a
集合体系结构 List系列集合:添加的元素有序,可重复,有索引 Collection:是单列集合的祖宗接口,它的功能是全部单列集合都可以继承使用的 set系列集合:添加的元素无序,不重复,无索引 方法名说明 public boolean add(E e) 把给定的对象添加到当前集合中 public void clear() 清空集合中所有的元素 public boolean remove(E e) 把给定对象在当前集合中删除 public contains(Object obj) 判断当前集合中是否包含给定对象 public boolean isEmpty() 判断当前集合是否为空 public int size() 返回集合中元素的个数/集合长度 Collection遍历 迭代器遍历 迭代器在java中的类是iterator,迭代器是集合专用的遍历方式 Collection集合获取迭代器 Iterator< E > iterator() 返回迭代器对象,默认指向当前集合的0索引 Iterator中的常用方法 方法说明 boolean hasNest() 判断当前位置是否有元素,有元素返回true,没有返回false E next() 获取当前位置的元素,并将迭代器对象移向下一个位置 迭代器遍历完毕,指针不会复位 循环中只能用一次next方法 迭代器遍历时,不能用集合的方法,进行增加或删除 如果当前位置没有元素,还要强行获取,会报NosuchElementException 增强for遍历 增强for的底层就是迭代器,为了简化迭代器的代码书写的 它是JDK5之后出现的,其内部原理是一个lterator迭代器 所有的单列集合和数组才能用增强for遍历 格式: for(元素的数据类型 变量名: 数组或集合 ){ } for(String s : list){ } s就是一个第三方变量,在循环过程中 以此表示集合中的每一个数据 Lambda表达式遍历 default void forEach(consumer<? super T > action): List集合 List集合的特有方法 Collection的方法List都继承了 List集合因为有索引,所以多了很多索引的操作方法 方法说明 viod add(int index,E element) 在指定位置插入指定元素 E remove(int index) 删除指定索引的元素,返回被删除的元素 E set(int index,E element) 修改指定索引的元素,返回被修改的元素 E get(int index) 返回指定元素 List集合的遍历方式 迭代器:遍历过程中需要删除元素 列表迭代器:遍历过程中需要添加元素 增强for(仅仅想遍历) Lambda(仅仅想遍历) 普通for:遍历时想操作索引 数据结构 计算机底部储存,组织数据方式 栈:后进后出,先进先出 数据进入栈模型的过程称为:压/进栈 数据离开栈模型的过程称为:弹/出栈 队列:先进先出,后进后出 数组: 查询速度快:查询数据通过地址值和索引定位,查询任意数据耗时相同(元素在内存中是连续储存的) 删除效率低:要将原始数据删除,同时后面每个数据前移 添加效率低:添加位置后的每个数据后移,再添加元素 链表 链表中的节点是独立的对象,在内存中是不连续的,每个结点包含数据值和下一个结点的地址 链表查询数据慢,无论查询哪个数据都要从头开始找 链表增删相对快 LinkedList集合:双链表,查询慢,首尾操作极快。
阅读全文