JavaSE第三周总结

day11

一、API

  1. IDEA导出jar包
    1. File->Project Structure
      快捷键:ctrl + alt + shift + s

      在这里插入图片描述

    2. 选择 Artifacts -> JAR -> From modules …

      在这里插入图片描述

    3. 弹出如下消息框

      在这里插入图片描述

    4. 点击上图ok后,回到如下图所示界面

      在这里插入图片描述

    5. 点击ok后,

      在这里插入图片描述

    6. 点击ArrayUtils.jar下的Build

      在这里插入图片描述

    7. 显示下图,表示已经导出完毕.

      在这里插入图片描述

    8. 这种导出方法,导出的是该项目中的所有.class文件

      在这里插入图片描述

    9. 如果需要导出单个.class文件作为jar包,按下图所示

      在这里插入图片描述

  2. IDEA制作API
    1.常见API注解:
        作者:@author lc
        版本:@version v1.0
        从哪个版本该是:@since
        参数:@param 参数名称 参数名称的解释
        返回值:@return 返回内容的解释
    2、需要书写在文档注释中
    

    点击Tools菜单,选择Generate JavaDoc…

    在这里插入图片描述

    设置扫描生成API的范围,api的存放路径,以及设置编码,如下图所示:

    在这里插入图片描述

    生成样式如下,index.html就是API的首页.

    在这里插入图片描述

二、Object类【所有类的超类】

构造方法:
	Object() :创建一个对象
	
成员方法:
	toString():
		不重写:返回该对象的全限定类名+地址。
		重写:返回该对象的属性值
	equals():
		不重写:比较两个对象的地址值【两个引用是否指向了同一个对象】
		重写:比较两个对象的属性值
== 和 equals的区别【面试题6】
1、本质不一样:
	== :是一个运算符
	equals:是一个方法
2、使用方式不一样
	== :直接使用
	equals:必须得类对象调用
3、比较方式不一样:
	== :可以比较任意数据类型数据的大小的
		基本数据类型数据:比较的就是数据值大小关系
		引用数据类型对象:比较的对象的地址值大小关系
	equals:只能比较对象数据
		类重写方法:比较的就是类对象的属性值得大小是否同时相同
		类没有重写方法:;比较的就是类对象的地址值是否相等

三、String类

概念:
	1、String是字符串的表示形式【String是一个描述字符串事物的类】
    `2、所有的字符串常量都是String的对象`
    `3、所有的字符串常量不存在堆空间,存在于字符串常量池【静态区】`
    
特点:
	1、字符串一旦创建长度和内容不可变
	2、String类中的方法只要返回值为String类型,都是额外创建新的String对象	
常用构造方法:
方法说明
public String()创建一个空字符串
public String(String original)创建参数字符串的一个副本(参数字符串是在常量池中,构造方法创建的字符串是在堆内存中)
public String(byte[] arr)使用平台的默认字符集,将一个字节数组转成一个字符串
1) 编码:编码是信息从一种形式或格式转换为另一种形式的过程.用预先规定的方法将文字、数字或其它对象编成数码,或将信息、数据转换成规定的电脉冲信号.
2) 解码:解码是一种用特定方法,把数码还原成它所代表的内容或将电脉冲信号、光信号、无线电波等转换成它所代表的信息、数据等的过程.
3) 常用编码表:ASCII、GBK、UTF-8
public String(byte[] arr, int offset, int length)使用平台的默认字符集,将字节数组的一部分转成字符串
public String(char[] arr)将字符数组转成字符串
public String(char[] arr, int offset, int length)将字符数组的一部分转成字符串.
常用方法:
方法说明
判断功能 :
public boolean equals(Object anObject)判断对象和参数对象描述的字符串内容是否相同
public boolean equalsIgnoreCase(String anotherString)忽略大小写,判断对象和参数对象描述的字符串内容是否相同
public boolean contains(CharSequence s)判断对象是否包含了 s这个子串
public boolean startsWith(String prefix)判断对象是否以 prefix 开头
public boolean endsWith(String suffix)判断对象是否以suffix 结尾
public boolean isEmpty()判断对象是否是空串
获取功能:
public int length()获取字符串字符的个数
public char charAt(int index)返回对象字符串中索引为index的字符.index范围在[0,length()-1]
public String substring(int beginIndex)获取一个字符串,内容是从当前字符串的 beginIndex 索引开始
public String substring(int beginIndex,int endIndex)获取一个指定索引范围的子串
注意事项:
1.包含头不包含尾,返回的结果中,不包含 endIndex 索引指向的字符.
2.所有的方法都无法修改字符串对象本身,一般都是返回一个新的字符串对象
public int indexOf(String str)返回的是 str 这个字符串在对象字符串中第一次出现的索引
public int indexOf(String str,int fromIndex)从 fromIndex 索引开始寻找,找到 str 字符串在当前字符串中第一次出现的索引
(注意:无论从哪个位置开始找,所有字符的索引都不会变化)
public int lastIndexOf(String str,int fromIndex)从 fromIndex 索引开始寻找,找到 str 字符串在当前字符串中最后一次出现的索引
(注意:无论从哪个位置开始找,所有字符的索引都不会变化)
转换功能:
public byte[] getBytes()将当前字符串转成字节数组
public char[] toCharArray()将当前的字符串转成字符数组
public String toLowerCase()将当前的字符串,转成全小写形式
public String toUpperCase(Locale locale)将当前的字符串,转成全大写形式
public String concat(String str)将当前对象和参数 str 进行拼接,返回拼接后的长字符串
public static String valueOf(Object obj)返回Object参数的字符串表示形式
其他功能:
public String replace(CharSequence target,CharSequence replacement)将对象中包含的所有target替换成replacement
public String[] split(String regex)使用指定的字符串规则将对象字符串切割成多个子串
public String trim()去掉字符串左右两边的空格,制表符
字符串对象:
字符串对象的获取有两种方式:
	1、直接赋值字符串常量方式:得到的字符串对象就是字符串常量【在方法区的常量池中】
		== 和 equals:比较的都是内容
	2、构造方法创建:得到实例化的字符串对象【在堆内存开辟空间】
		==:比较地址
		equals:比较属性值【`String类已经重写toString方法`

day12

一、StringBuilder

概念:
	可变字符序列【字符串缓冲区】    
作用:
	对字符序列进行操作,减少内存的同时完成业务需求,提升代码运行效率
特点:
	1、表示的字符序列内容可以变化的
    2、功能都是对自己内容的操作
    3、不会额外生成字符序列对象

构造方法:

方法说明
public StringBuilder()创建一个生成器,初始容量为 16 个字符
public StringBuilder(int capacity)创建一个生成器,初始容量为 capacity 大小
public StringBuilder(String str)创建一个生成器,初始值就是 str 这些字符,初始大小是 str+16

常用方法:

方法说明
public StringBuilder append(Object obj)可以将任意数据类型,转成字符,添加到生成器中
public StringBuilder insert(int index,Object obj)可以将任意数据类型,添加到指定的位置
说明:
(1)index 的范围是 0~ 当前缓冲区的大小;
(2)插入数据之后,数据本身的索引就是参数中指定的 index
public StringBuilder deleteCharAt(int index)删除指定索引的字符
public StringBuilder delete(int start,int end)删除指定范围的字符,被删除的部分包含头不包含尾
public StringBuilder replace(int start,int end,String str)将字符串缓冲区中的从 start 开始到 end-1 这部分内容,替换成 str
public StringBuilder reverse()将原有字符序列进行反转
public String toString()将StringBuilder对象转换成字符串
StringBuilder 和 StringBuffer的区别【面试题7】
1、出现的时期 不一样
	StringBuffer:在jdk1.0
	StringBuilder:在jdk1.5
2、多线程使用的安全性不同:
	StringBuffer:线程安全
	StringBuilder:线程不安全
3、执行效率不同
	StringBuffer:执行效率低
	StringBuilder:执行效率是高

二、包装类

  • 包装类
    基本数据类型包装类
    byteByte
    shortShort
    intInteger【特殊】
    longLong
    floatFloat
    doubleDouble
    charCharacter【特殊】
    booleanBoolean
  • Integer类型:可以完成 int Integer String三个数据类型的相互转换【定义关于转换的方法】

    构造方法:

    方法名说明
    public Integer(int value)将一个基本类型的int数值,转换成Integer类型的对象
    public Integer(String s)将一个字符串类型的数字,转换成 Integer类型的对象【字符串必须是数字字符串】

    常用方法:

    方法名说明
    intValue()可以将Integer类型的对象,转成其他的基本数据类型: 例如: byteValue()、floatValue()
    public static int parseInt(String s)将s以十进制的方式解读为一个int数
    public static String toBinaryString(int i)使用二进制的表示方式表示数字i
    public static String toOctalString(int i)使用八进制的表示方式表示数字i
    public static String toHexString(int i)使用十六进制的表示方式表示数字i
    public static int parseInt(String s,int radix)throws NumberFormatException使用指定的radix进制,表示数字s
    public static Integer valueOf(String s)throws NumberFormatException将s进行解析,封装为一个 Integer对象
    public static String toString(int i, int radix)返回用第二个参数指定基数表示的第一个参数的字符串表示形式。

    常量:

    常量名说明
    public static final int MAX_VALUEint 类型的最大值
    public static final int MIN_VALUEint 类型的最小值
    public static final int SIZEint 类型在内存中的位数
    public static final Class TYPEint 类型在方法区中的字节码对象,int.class
  • 自动拆装箱
    装箱:基本数据类型转变为对应的包装类类型 【Integer的构造 、 valueOf(基本数据类型数据)】
    拆箱:包装类类型转变为对应的基本数据类型 【intValue  ------>  xxxValue】
    自动拆装箱:`在jdk5版本后支持自动拆装箱`
    Integer String int三个数据类型相互转换的功能?
        Integer ---> String:toString()
        Integer ---> int:intValue()
        int ---> Integer:Integer的构造,valueOf()	
        int ---> String:toXXXString(),直接加"",String的valueOf
        String ---> int:parseInt()
        String ---> Integer:Integer的构造,valueOf()
    

    在这里插入图片描述

三、Math类

  • 常用方法

    方法名说明
    public static double abs(数字类型)返回该参数的绝对值
    public static double cbrt(double a)返回 a 的开立方根
    public static double sqrt(double a)返回 a 的正平方根
    public static double ceil(double a)返回 a的向上取整
    public static double floor(double a)返回 a的向下取整
    public static int max(int a,int b)返回 a、b 的较大值
    public static int min(int a,int b)返回 a、b 的较小值
    public static double pow(int a,int b)返回 a 的 b 次幂
    public static double random()返回值为double的正值,[0.0,1.0)
    public static long round(double a)返回 a四舍五入的结果【只针对小数点第一位】

四、System类

  • 常用属性:

    属性名说明
    public static final InputStream in标准输入流,默认关联到键盘上
    public static final PrintStream out标准输出流,默认关联到控制台上
    public static final PrintStream err标准错误输出流,默认关联到控制台上,用于打印错误信息
  • 常用方法:

    方法名说明
    public static void exit(int status)退出JVM,零表示正常终止
    public static long currentTimeMillis()返回当前时间的毫秒值,表示的是从 1970 年1月1日0 时0 分0 秒开始到现在经历的毫秒值
    public static void gc()强制垃圾回收器回收内存中的垃圾
    public static void arraycopy(Object src,int srcPos,Object dest,int destPos,int length)快速数组复制
    五个参数分别为:
    源数组, 起始索引, 目的数组, 起始索引, 拷贝元素个数

day13

一、大数据类型

1、BigInteger类
  • 常用构造:

    方法名说明
    public BigInteger(String val)将指定字符串转换成BigInteger对象
    public BigInteger(String val,int radix)根据指定的radix进制,将指定字符串转换成BigInteger对象
  • 常用方法:

    方法名说明
    public BigInteger abs()返回BigInteger对象的绝对值
    public BigInteger negate()取该对象的反数
    public BigInteger add(BigInteger val)加法
    public BigInteger subtract(BigInteger val)减法
    public BigInteger multiply(BigInteger val)乘法
    public BigInteger divide(BigInteger val)除法
2、BigDecimal类
  • 常用构造:

    方法名说明
    public BigDecimal(double val)将double类型的数据转换成BigDecimal对象
    public BigDecimal(String val)将String类型的数据转换成BigDecimal对象
  • 常用方法:

    方法名说明
    public BigDecimal(double val)将double类型的数据转换成BigDecimal对象
    public BigDecimal(String val)将String类型的数据转换成BigDecimal对象

二、时间类

  1. Date类

    • 构造方法

      方法名说明
      public Date()分配 Date 对象并初始化此对象,以表示分配它的时间(精确到毫秒)
      public Date( long date)分配 Date 对象并初始化此对象,以表示自从标准基准时间(称为"历元(epoch)",即 1970 年 1 月 1 日 00:00:00 GMT)以来的指定毫秒数
    • 常用方法

      方法名说明
      public long getTime()返回自1970 年1月1日 00:00:00 GMT 以来此 Date 对象表示的毫秒数
      public void setTime(long time)设置此Date对象,以表示 1970 年1月1日 00:00:00 GMT 以后 time 毫秒的时间点
  2. SimpleDateFormat类

    • 构造方法

      方法名说明
      public SimpleDateFormat()用默认的模式和默认语言环境的日期格式创建对象
      public SimpleDateFormat(String pattern)用给定的模式和默认语言环境的日期格式创建对象
    • 常用方法

      方法名说明
      public final String format(Date date)将一个 Date 格式化为日期/时间字符串
      public Date parse(String source) throws ParseException从给定字符串解析文本,以生成一个日期

    注意事项:

    ​ 使用SimpleDateFormat进行解析的时候必须做到日期字符串的格式和SimpleDateFormat对象内部的格式一模一样。

  3. Calendar类

    方法名说明
    public static Calendar getInstance()使用默认时区和语言环境获得一个Calendar类对象
    public void set(int field,int value)将给定的日历字段设置为给定值
    public int get(int field)返回给定日历字段的值
    public abstract void add(int field,int amount)根据日历的规则,为给定的日历字段添加或减去指定的时间量
    public final Date getTime()返回一个表示此 Calendar 时间值(从历元至现在的毫秒偏移量)的 Date 对象

三、NumberFormat类

  • 常用方法

    方法名说明
    public static final NumberFormat getInstance()返回当前默认语言环境的通用数值格式
    public static final NumberFormat getCurrencyInstance()返回当前默认语言环境的货币格式
    public static final NumberFormat getPercentInstance()返回当前默认语言环境的百分比格式
    public void setMaximumFractionDigits(int newValue)设置数的小数部分所允许的最大位数
    public void setMaximumIntegerDigits(int newValue)设置数的整数部分所允许的最大位数
    public final String format(double number)格式化

四、Arrays工具类

  • 常用方法

    方法名说明
    public static int binarySearch(Object[] a,Object key).使用二分搜索法来搜索指定数组,以获得指定对象
    public static void sort(Object[] a)根据元素的自然顺序对指定对象数组按升序进行排序
    public static String toString(Object[] a)返回指定数组内容的字符串表示形式

day14

异常体系

一、异常的概述

​ 异常体系:【语法错误不是异常】

在这里插入图片描述

类名解释
Throwable可抛出的,是异常体系的顶层父类,其他的异常或者错误都是Throwable的子类类型,只有Throwable的体系类型,才可以使用异常的处理机制。
Error错误,是Throwable的子类,用于描述那些无法捕获和处理的错误情况,属于非常严重的错误。如:StackOverflowError
ExceptionThrowable的子类,用于描述那些可以捕获和处理的例外情况,属于不太严重的错误。
RuntimeException及其子类运行时异常,是Exception的特殊的子类,在编译阶段不做检查、运行阶段才能发现的一类异常。如:ArrayIndexOutOfBoundsException
除RuntimeException之外所有的异常类编译时异常,是Exception的子类们,在编译阶段就会检查的一类异常。比如:ParseException

二、异常的处理方式

分类:
	声明异常:把异常抛给了其他使用者【使用`throws`关键字抛出异常】
	捕获异常:捕获具体的异常对象
  • 声明异常:

    在方法的参数列表后使用throws + 异常的类型:public void 方法名(形参) throws XXXException {}
    `对外声明的是异常的类型,不一定会产生具体的异常对象`
    
  • 捕获异常:

    • try…catch

      格式:
          try{
             可能发生异常的代码段 
          }catch(异常的类型 异常对象名){
              处理异常的具体方案
          }
          
      特点:
      	只能捕获指定的单一类型的异常
      
    • try…catch…catch

      格式:
        try{
               书写可能发生异常的代码段 
            }catch(异常类型1 捕获到的异常对象名1){
                处理异常的具体方案1
            }catch(异常类型2 捕获到的异常对象名2){
                处理异常的具体方案2
            }..... catch(异常类型n 捕获到的异常对象名n){
                处理异常的具体方案n
            }
          
      特点:
         1、可以指定多个不同的异常类型
         2、只能捕获第一个异常  
         3、指定的异常类型没有关系时,书写顺序随意
         4、指定的异常类型有继承关系时,书写顺序原则:子类在前父类在后
         5、捕获的异常对象可以使用他的父类型变量接收
            【可以父类型捕获子类类型的异常对象】
         6、涉及的不同类型的异常,如果处理方案一样,可以合并catch:
            1、使用涉及的不同类型异常的共有父类进行捕获异常就可以
            2、jdk8版本增加方式:可以把涉及的异常类型使用逻辑或的关系组合进行捕获异常对象
            	【前提:涉及的异常类型相互之间没有关系】
      
    • trytry…catch…catch…finally

      1、在try... catch....catch的基础上增加finally
      2、finally作用域无论异常是否发生都会执行
      

三、throw关键字

概述:
	使用在方法的方法体中,抛出一个具体的异常对象
	
作用:
	 抛出具体的异常对象:
         如果是运行异常对象 可处理可不处理
         如果是编译异常对象 必须处理【声明 捕获】
throw 和 throws的区别【面试题8】
 1、throws:
		声明位置:方法名之后
			  public void test1() throws NullPointerException{}

		作用:通知JVM当前方法在运行时,【有可能】抛出的异常

		携带数据:throws后面携带【异常类型】,一个throws后面可以携带多个异常类型

		调用:当一个方法被throws修饰时,调用方法时必须考虑异常捕捉问题

 2、throw:
		声明位置:方法执行体
			  public void test1(){
				throw new RuntimeException();
			  }

		作用:throw是一个命令,执行时抛出一个指定的异常对象

		携带数据:throw后面携带【异常对象】,一个throw一次只能携带一个异常对象

		调用:当一个方法内部存在throw命令,在调用时可以不考虑异常捕捉问题

四、JVM默认处理异常的方式

遇到异常没有使用任何的处理方式进行处理或者处理的方式处理不了,启动jvm的 异常处理机制:
 	默认把当前的异常一路的下一个调用者处声明【抛出】,一直到最后一个不能声明【抛出】的	 调用者处进行捕获处理【捕获处理方案默认 :e.printStackTrace();】
如果最后的调用者是jvm:
    捕获处理:
    	1、在异常发生处直接停止程序的运行
    	2、同时捕获异常对象进行e.printStackTrace()执行

五、Throwable类【异常体系的超类】

  • 构造方法

    ​ Throwable():创建一个没有任何信息异常对象
    ​ Throwable(String message):创建一个具有描述异常信息的异常对象
    ​ Throwable(Throwable t):创建一个具有异常原因信息的异常对象

  • 常用方法

    方法名说明
    public String getMessage()返回此 throwable 的详细消息字符串
    public String toString()返回此可抛出的简短描述【对象的名称 原因 描述信息】
    public void printStackTrace()把异常的错误栈轨迹信息输出在控制台【】
    public Throwable getCause()获取异常对象的产生原因

六、异常的注意事项

1、运行时异常可以不处理,也可以处理【实际开发一般不处理】

2、如果父类方法没有异常抛出,子类重写父类方法时,不能抛出编译时异常。

3、如果父类方法抛出了多个编译时异常,子类覆盖父类的方法时,可以不抛出异常,或者抛出相同类型的异常,或者抛出父类异常的子类【类型小于父类异常类型】。

七、自定义异常

步骤:
      1、创建一个类继承对应的父类【编译异常:Exception   运行异常:RunTimeException】
      2、提供类的空参构造【调用父类的相关构造 】

day15

集合体系

一、集合概述

  • 集合

    用来存放多个引用数据类型数据的容器 
    
  • 集合与数组的区别

    数组:
    	1、没有创建之前可以存放任意数据类型的数据
    	2、数组一旦创建长度就固定不变
    	3、数组一旦创建就只能存放指定的数据类型的数据
    集合【特点】 :
    	1、只能存放引用数据类型的数据
    	2、集合可以同时存放多种数据类型的对象
    	3、集合的长度是可变的
    
  • 集合体系图

在这里插入图片描述

二、单列集合

1、Collection接口

  • 概述
Collection是一个接口,是一个定义了所有单列集合`共性功能`的一个接口【Collection是单列集合的顶层接口】
ArrayList是Collection的典型实现类
  • 常用方法

在这里插入图片描述

  • 遍历方法

    • 迭代器遍历

      在这里插入图片描述

      Collection遍历获取迭代器的对象:
          iterator():获取迭代器对象
          
      迭代器的功能:
          hasNext():判断下一个位置是否有值   返回值为boolean类型的值
      	 next():获取位置上的元素同时移动迭代器指针到下一个位置
      
      步骤:
      	1、获取迭代器对象同时迭代器的指针存在于集合头部的外面指向下一个位置
          2、循环开始遍历:
              hasNext方法作为循环条件:判断指针指向的位置是否有值 返回结果
                  true :
                      调用next方法获取该位置的元素进行循环体的逻辑操作,同时把迭代器的指针移动到下一个位置
                      继续判断是否有值:
                          如果每个位置都有值重复执行next方法以及循环体达到遍历的效果
                  false :结束循环【遍历】
                  
      注意事项:
      	1、hasNext方法执行次数是集合当前长度+1次
      	2、next方法执行集合的长度次
      
    • 增强for遍历

      格式:
      	for(数据类型 对象名 :容器名称){
              获取到元素要进行的逻辑操作
          }
          
      本质:
          迭代器遍历
      
    • 数组法遍历

      把集合对象中的元素复制到数组中,对这个数组进行遍历 【集合变为数组后遍历】
      集合变为数组:
          空参:toArray():把集合变为Object数组【根据集合中数据的个数和数据类型创建对应的数组对象】
          有参:toArray(Object[] arr):把集合变为Object数组
                1、传入的数组的长度和集合的长度一致 系统不会额外的创建数组 直接使用
                2、传入的数组的长度比集合的长度小: 系统根据集合的长度以及涉及的数据类型创建新的数组
                3、传入的数组的长度比集合的长度大:系统不会额外的创建数组 多余的位置使用null填充
      

2、有序单列集合【List接口】

  • 特点

    1、有序
        【集合存元素的顺序和取元素的顺序是一致的】
    2、有索引
        【索引从0开始】
    3、元素可重复
    
  • 特有方法【优先使用特有方法,效率高

    方法名描述
    void add(int index,E element)在此集合中的指定位置插入指定的元素
    E remove(int index)删除指定索引处的元素,返回被删除的元素
    E set(int index,E element)修改指定索引处的元素,返回被修改的元素
    E get(int index)返回指定索引处的元素
  • 特有遍历

    普通for循环遍历:使用for操作索引值得变化进行取值操作
    	for (int i = 0; i < list.size(); i++) {
                System.out.print(list.get(i) + " ");
            }
    

3、并发修改异常【ConcurrentModificationException】

原因:
	`使用迭代器遍历的过程中使用集合对象对集合的元素进行了增或删的操作`【遍历和操作元素的对象不一致】
解决方案:
     迭代器遍历:增删元素的时候使用迭代器对象【迭代器只有删除功能】
	 普通for遍历:遍历和增删都使用集合对象
引用大佬方案:
	

> 这里是引用

https://blog.csdn.net/androiddevelop/article/details/21509345

4、简单数据结构

栈:
	先进后出,只有一端操作元素
	
队列:
	先进先出,进、出各占一端
	
数组:
	一段连续的空间:查找块,增删慢
	
链表:
	一系列节点[node]组成:增删快,查找慢
	多个节点之间,通过地址相连

5、有序单列集合实现类

  • ArrayList

    概述:
    	底层是数组:查询快,增删慢
    	ArrayList是List的典型实现类,没有自己的特有功能,功能都是List接口中的功能。
    	
    特点:
    	1. 在创建ArrayList集合对象的时候,会维护一个长度为10的Object类型的数组.
    	2. 当插入数据10个长度不够,这时候以1.5倍的形式进行扩容
    
  • LinkedList

    概述:
    	底层是双向链表:增删快,查询慢
    	LinkedList是List的另一个常用实现类集合,有自己的特有功能,主要是对集合首、尾元素的操作
    	
    特有功能:
    	 public void addFirst(E e):将指定元素插入此列表的开头。
         public void addLast(E e):将指定元素添加到此列表的结尾。
         public E getFirst():返回此列表的第一个元素。
         public E getLast():返回此列表的最后一个元素。
         public E removeFirst():移除并返回此列表的第一个元素。
         public E removeLast():移除并返回此列表的最后一个元素。
         public E pop():从此列表所表示的堆栈处弹出一个元素。
         public void push(E e):将元素推入此列表所表示的堆栈。
    

数组:
一段连续的空间:查找块,增删慢

链表:
一系列节点[node]组成:增删快,查找慢
多个节点之间,通过地址相连


### 5、有序单列集合实现类

- ArrayList

概述:
底层是数组:查询快,增删慢
ArrayList是List的典型实现类,没有自己的特有功能,功能都是List接口中的功能。

特点:
1. 在创建ArrayList集合对象的时候,会维护一个长度为10的Object类型的数组.
2. 当插入数据10个长度不够,这时候以1.5倍的形式进行扩容


- LinkedList

概述:
底层是双向链表:增删快,查询慢
LinkedList是List的另一个常用实现类集合,有自己的特有功能,主要是对集合首、尾元素的操作

特有功能:
public void addFirst(E e):将指定元素插入此列表的开头。
public void addLast(E e):将指定元素添加到此列表的结尾。
public E getFirst():返回此列表的第一个元素。
public E getLast():返回此列表的最后一个元素。
public E removeFirst():移除并返回此列表的第一个元素。
public E removeLast():移除并返回此列表的最后一个元素。
public E pop():从此列表所表示的堆栈处弹出一个元素。
public void push(E e):将元素推入此列表所表示的堆栈。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值