黑马程序员技术交流社区

标题: 【成都校区】setl,ist学习心得 [打印本页]

作者: Mou    时间: 2018-11-22 12:46
标题: 【成都校区】setl,ist学习心得
# 数据结构
        * 栈:先进后出:
                * 方法调用时:
                    入栈的顺序:  main     method
                    出栈的顺序:  method   main

        * 队列:先进先出
                先排队的人先买到票

        * 数组:
                * 结构特点:
                    1. 长度固定
                    2. 有索引
                    3. 一块连续的内存空间

                * 操作上的特点:
                查询快
                增删慢

        * 链表:
                * 结构特点:
                    1. 每个元素都是一个对象,包含了两部分内容,数据域和指针域。
                    2. 每个元素之间通过地址值连接,上一个元素会拥有下一个元素的地址值。
       
            * 操作上的特点:
                查询慢
                增删快

        * 红黑树:
                * 树形结构
                * 二叉树
                * 查找树/排序树 : 对于节点,左边小,右边大
                * 平衡树:左右子树的高度差,不大于1
                * 红黑树:一个趋近于平衡的二叉树
                * 特点:查询快
### List体系:
        * 特点:
                有序、有索引、允许重复
        * List特有功能:
                *  E get(int index) 获取指定索引位置的元素
                *  E set(int index, E e) 修改指定索引位置的元素,返回被修改的元素
                *  E remove(int index) 删除指定索引位置的元素,返回被删除的元素
                *  void add(int index, E e) 在指定索引位置添加一个指定元素
        * 子类:
                * ArrayList 底层是数组的实现
                * LinkedList 底层是链表的实现
                        * 特有功能:
                                1. addFirst(E e)
                                2. addLast(E e)
                                3. E removeFirst()
                                4. E removeLast()
                                5. E getFirst()
                                6. E getLast()
                * Vector 功能类似于ArrayList,但是是线程安全类
### Set体系:
        * 特点:
                无序、无索引、不允许重复
        * 子类:
                * HashSet 底层是hash表的实现
                        * 存储自定义对象的时候需要重写hashCode和equals方法保证元素唯一
                * LinkedHashSet
                        * 是HashSet的子类,底层是链表+hash表的实现。
                        * 能保证元素存和取的顺序是一致的
                * TreeSet 元素不重复,然后元素会按照指定的顺序排列。
                        1. 指定的顺序排列 元素本身实现了Comparable接口
                        2. 额外给一个比较器对象

### 可变参数:
        * 概述:JDK1.5之后出现的一种方法参数上的特殊写法
        * 格式: 数据类型... 变量名
        * 作用:当一个方法的参数是可变参数的时候,此方法可以接收任意多个(0个,1个,多个,数组)该类型的变量
                       
### Collections工具类
        * static boolean addAll(Collection<? super T>, T... elements)  往指定集合中添加指定元素
        * static void shuffle(List<?> list) 将集合中的元素打乱顺序,随机置换
        * static void sort(List<T> list)        将list集合中的元素按照元素本身的排序规则进行排序(要求元素所在的类必须实现Comparable接口)
        * static void sort(List<T> list, Comparator<T> c)  将list集合中的元素按照指定比较器的排序规则进行排序





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2