1.数据结构特点:
栈:先进后出(1个出口)
列队:先进后出(2个出口)
数组:查询快,增删相对慢
链表:元素是不连续存放的,查询慢,增删相对快
红黑树:查询速度非常快,查询叶节点的最大次数和最小次数不能超过2倍
2.List集合:
2.1List接口介绍:
2.2java.util.List 接口继承自 Collection 接口
接口特点:
1.有索引
2.元素可以重复
3.存储和取出有顺序
3.List的子类:查询慢,删除快,存储和取出有顺序
public void add(int index, E element) : 将指定的元素,添加到该集合中的指定位置 上。 public E get(int index) :返回集合中指定位置的元素。 public E remove(int index) : 移除列表中指定位置的元素, 返回的是被移除的元素。 public E set(int index, E element) :用指定元素替换集合中指定位置的元素,返回值的 更新前的元素。
3.1:ArrayList集合,LinkedList集合:查询慢,删除快.
ArrayList集合:内部有一个Object[]的成员变量,所有数据存储在这个数组中.
LinkedList集合:底部是个链表结构
4.Set接口:元素不能重复,没有索引,无序
4.1HashSet集合:是根据对象的哈希值来确定元素在集合中的存储位置,因此具有良好的存储和查找性能。 保证元素唯一性的方式依赖于: hashCode 与 equals 方法。
4.2HashSet集合存储数据的结构(哈希表):
哈希表底层采用数组+链表实现,J打开1.8引入红黑树,要保证对象唯一,必须重写hashCode和equals方法建立属于当前的比较形式.
4.3LinkedHashSet结合:在HashSet下面有一个子类 java.util.LinkedHashSet ,它是链表和哈希表组合的一个数据存储 结构。
5.1Collections类:java.utils.Collections 是集合工具类,用来对集合进行操作。
java.utils.Collections 是集合工具类,用来对集合进行操作。 常用方法如下:
public static void shuffle(List<?> list) :打乱集合顺序。 public static void sort(List list) :将集合中元素按照默认规则排序。 public static void sort(List list,Comparator<? super T> ) :将集合中元 素按照指定规则排序。
5.2Comparator比较器:是一个借口,可以通过Comparator指定比较规则
5.3可变参数:一个方法需要接受多个参数,并且多个参数类型一致
格式:修饰符 返回值类型 方法名(参数类型… 形参名){ }