[JAVA数据结构]顺序表ArrayList

目录

1.线性表

2.顺序表

3.ArrayList简介

4.ArrayList的使用 

4.1ArrayList的构造方法

4.2ArrayList的常用操作

4.3ArrayList的遍历方法

4.4ArrayList的扩容机制

5.ArrayList的具体运用


ArrayList是一种基于数组的数据结构,是线性表的一种,也是顺序表。

1.线性表

通俗来说,线性表是一种线性结构,在逻辑上连续,但物理上不一定连续的结构(链表就是逻辑上连续,但物理存储上不连续的数据结构)

2.顺序表

顺序表是用一段物理地址连续的存储单元依次存储数据元素的线性结构,一般采用数组存储,在数组上实现增删改查

3.ArrayList简介

首先我们可以了解ArrayList中继承的类和实现的接口

 下面简单的介绍一下上面几个接口或类:

  • Serializable接口:实现了此接口的子类标明了该子类是可序列化的,其作用为更好的保存和修改数据
  • Cloneable接口:表示了其是可以clone
  • Iterable接口:表示了其可以迭代其元素
  • Collection接口:是一个集合接口,它提供了对集合对象进行基本操作的通用接口方法
  • LIst接口:表示其为一个有序集合
  • 最后一个是RandomAccess接口:表明了其支持随机访问
  • ArrayLisy是以泛型方式实现的,使用时必须先实例化。

4.ArrayList的使用 

4.1ArrayList的构造方法

 *第二个构造方法可以将Collection对象转化为ArrayList,并创建出一个新的对象

4.2ArrayList的常用操作

方法解释
boolean add(E e)尾插 e
void add(int index, E element)将 e 插入到 index 位置
boolean addAll(Collection<? extends E> c)尾插 c 中的元素
E remove(int index)删除 index 位置元素
boolean remove(Object o)删除遇到的第一个 o
E get(int index)获取下标 index 位置元素
E set(int index, E element)将下标 index 位置元素设置为 element
void clear()清空
boolean contains(Object o)判断 o 是否在线性表中
int indexOf(Object o)返回第一个 o 所在下标
int lastIndexOf(Object o)返回最后一个 o 的下标
List<E> subList(int fromIndex, int toIndex)截取部分 list

4.3ArrayList的遍历方法

遍历方法共有三种,for循环,foreach,迭代器

public static void main(String[] args) {
    List<Integer> list = new ArrayList<>();
    list.add(1);
    list.add(2);
    list.add(3);
    list.add(4);
    list.add(5);
// 使用下标+for遍历
    for (int i = 0; i < list.size(); i++) {
        System.out.print(list.get(i) + " ");
    }
    System.out.println();
// 借助foreach遍历
    for (Integer integer : list) {
        System.out.print(integer + " ");
    } 
    System.out.println();
//迭代器
    Iterator<Integer> it = list.listIterator();
    while(it.hasNext()){
        System.out.print(it.next() + " ");
    } 
    System.out.println();
}

4.4ArrayList的扩容机制

ArrayList是一个动态类型的顺序表,在添加元素的过程中,如果列中元素已满会自动扩容

下面是对扩容代码源码的一点解释:

5.ArrayList的具体运用

(1条消息) [JAVA]洗牌ArrayList的举例运用_HY_PIGIE的博客-CSDN博客


 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值