A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 杨安叔叔 初级黑马   /  2018-12-20 08:08  /  1456 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

数据结构
        栈:先进后出
        队列: 先进先出
        数组:查询快,增删慢       
        链表:查询慢,增删快(链表中的地址不是连续的,每次查询,都需要从头开始查询,但增删元素,对链表整体结构没有影响,所以增删快)(增快,删相对慢)
        单向链表无序,双向链表有序
        红黑树:查询速度特别快

       

ArrayList
        Arraylist的底层是数组结构,所以查询快,增删慢


LinkedList
        底层是一个链表(双向链表),查询慢,增删快
        注意:使用特有方法不能用多态
        addfirst         插入开头
        addlast        添加到末尾,等同于add
        push        等同于addfirst

        getfirst        返回第一个元素
        getlast        返回最后一个元素

        removeFirst        移除并返回第一个元素
        removelast        移除并返回最后一个元素
        pop                等同于removeFirst

Vector
        单线程,速度慢,被ArrayList取代

==========Set===========
Set接口
        不允许存储重复的元素
        没有索引,没有带索引的方法,也不能使用普通for循环遍历)(可以用迭代器和增强for循环)
       

HashSet
        无序的集合,存储元素和取出元素的顺序可能不一样
        底层是哈希表结构(查询速度非常快)
        不允许存储重复的元素
        存储过程:获取元素的哈希值,去集合中判断有没有相同的哈希值,有就执行equals判断,是不是同一元素,不是就存储,如果元素相同,就不会放入集合
        使用HashSet存储自定义对象,需要重写HashCode和equals方法


LinkedHashSet
        底层是哈希表机构(数组+链条+红黑树)再加一个链条


可变参数
        方法的参数类型已经确定,参数数量不确定
        注意:一个方法的参数列表,只能有一个可变参数
                   如果方法的参数有多个,那么可变参数必须写在参数列表的末尾
        特殊写法(终极写法):(Object...obj)
        有序的,也不允许重复


Collections
        Collections.addAll        往集合中添加多个元素
        Collections.shuffle        打乱顺序
       
        sort        排序
        自定义的类需要实现compareble,然后重写
File类

        file        文件,
        directory        文件夹,
        路径        path,

        成员变量(静态):
                pathSeparator        路径分隔符
                pathSeparatorChar       

                pathseparator        名称分隔符
                pathseparatorChar

        转义符
                打印 “\”“ “” ”,java会识别不了,将其认为是符号不是字符串;
                这是就需要转义符: \

        绝对路径和相对路径
                绝对:完整的路径,从盘符开始,C:\\a.txt
                相对:简化的路径,相对是指当前项目的根目录,
                路径不区分大小写

        File类的构造方法
                file.getAbsolutePath()        获取当前file对象的绝对路径
                file.Path()                        获取当前file对象构造中传入的路径
                file.getName()                获取当前文件的名称
                file.length()                获取当前文件的大小
       
        判断路径是否存在
                boolean exists        判断文件是否存在
                boolean isDirectory()         判断是否是目录       
                boolean        isFile()                判断是否是文件
       
        创建删除功能的方法
                createNewFile()        当具有该名称的文件不存在是,创建一个新的空文件
                delete                删除File表示的文件或文件夹        如果文件夹里面有文件,就删不了,得先删文件
                mkdir                创建file表示的目录
                mkdirs                同上,但包括创建任何必需但没有的多级文件夹

遍历
        list        String类型,返回名称
        listfiles        File类型,返回路径   
                     
IO流

字节流
        close        关闭此输出流并并释放与此流相关的联的任何系统资源
        flush        刷新此输出流并强制任何缓冲的任何输出字节被写出
        write(byte[] b)        将b.length字节从指定的字节数组写入此输出流
        write(byte[]b,int off ,intlen)        从指定的字节数组写入 len字节,从偏移量 off开始输
出到此输出流
        write(int b)        将指定的字节输出流            

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马