[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的构造方法

[JAVA数据结构]顺序表ArrayList_第1张图片

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

4.2ArrayList的常用操作

方法 解释
boolean add(E e) 尾插 e
void add(int index, E element) 将 e 插入到 index 位置
boolean addAll(Collection 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 subList(int fromIndex, int toIndex) 截取部分 list

4.3ArrayList的遍历方法

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

public static void main(String[] args) {
    List 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 it = list.listIterator();
    while(it.hasNext()){
        System.out.print(it.next() + " ");
    } 
    System.out.println();
}

4.4ArrayList的扩容机制

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

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

[JAVA数据结构]顺序表ArrayList_第2张图片

5.ArrayList的具体运用

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


 

你可能感兴趣的:(数据结构,算法)