Java基础

一、ArrayList

  • ArrayList底层是一个Object[]数组;ArrayList底层数组默认初始化容量是10

ArrayList的构造方法:

  • ArrayList():创建一个初始化容量为10的空列表;

ArrayList的优点:

  • 向ArrayList末尾添加元素(add()方法)时,效率较高

  • 查询效率高

ArrayList的缺点:

  • 扩容效率低

  • 无法存储大数据量(因为很难找到一块很大的连续的内存空间)

  • 向ArrayList中间添加元素(add(int index)),需要移动元素,效率较低。

  • 如果增删元素较多,可以考虑使用链表

如何将ArrayList编程线程安全的呢?

  • 调用Collections工具类中的static List synchronizedList(List list)方法。

二、LinkedList

  • LinkedList底层是一个双向链表

LinkedList的优点:

  • 增/删效率高

LinkedList的缺点:

  • 查询效率低

ListIterator接口

  • LinkedList.add方法只能将数据添加到链表的末尾

  • 如果要把数据添加到链表的中间位置,则需要使用ListIterator接口的add方法

  • ListIterator是Iterator的一个子接口,其中常用的方法有:

返回值类型

方法和描述

void

  • add(E e)

将制定的元素插入列表

boolean

  • hasNext()

返回true,如果遍历正向列表,列表的迭代器有多个元素

boolean

  • hasPrevious()

返回true,如果遍历反向列表,列表的迭代器有多个元素

E

  • next()

返回列表中的下一个元素,并且前进光标位置

int

  • nextIndex()

返回随后调用next()返回的元素的索引

E

  • previous()

返回列表中的上一个元素,并向后移动光标的位置

int

  • previousIndex()

返回由后续调用previous()返回的元素的索引

void

  • remove()

从列表中删除由next()或previous()返回的最后一个元素

void

  • set(E e)

用指定的元素代替next()或previous()返回的最后一个元素

总结:

数据结构

底层实现

优点

缺点

构造方法

常用方法

ArrayList

  • Object[]数组

  • 初始容量为10

  • 向ArrayList末尾添加元素(add()方法)时,效率较高

  • 查询效率高

  • 扩容效率低

  • 无法存储大数据量(因为很难找到一块很大的连续的内存空间)

  • 向ArrayList中间添加元素(add(int index)),需要移动元素,效率较低。

  • 如果增删元素较多,可以考虑使用链表

ArrayList():创建一个初始化容量为10的空列表;

ArrayList.add():向末尾添加元素

LinkedList

双向链表

增/删效率高

查询效率低(每次查询都要从头开始遍历)

LinkedList可以调用get(int index)方法,返回链表中第index个元素

三、Vector

  • Vector底层是数组,初始化容量是10。原容量使用完毕之后,会进行扩容,扩容之后的容量是原始容量的2倍。

  • Vector是线程安全的(其方法里面带有synchronized关键字),效率较低,目前使用的较少。

四、Set

4.1 HashSet

  • 特点:HashSet无序(没有下标),不可重复。

4.2 TreeSet

  • 特点:TreeSet无序(没有下标),不可重复,但是可以排序

HashSet是HashMap的key部分;TreeSet是TreeMap的key部分。

五、Java.Math

  • Java 的 Math 包含了用于执行基本数学运算的属性和方法,如初等指数、对数、平方根和三角函数。

  • Math 的方法都被定义为 static 形式,通过 Math 类可以在主函数中直接调用

Math中常用的方法:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值