java顺序表的基本操作

本文详细介绍了顺序表的概念,它基于数组实现,具有动态扩容功能。顺序表在逻辑和物理上都保持元素相邻,提供快速的随机访问。然而,原生数组存在长度固定、插入删除效率低等问题。为解决这些问题,动态数组通过内部扩容方法提高灵活性。文章还列举了顺序表的基本操作,包括添加、删除、查找和修改元素,以及数组的扩容和合法性检查等。同时,对比了链表的优缺点,突显了顺序表在特定场景下的优势。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、顺序表:

顺序表即基于数组实现的线性表,成为动态数组,用一组地址连续的存储单元存储各个元素,使得其在逻辑上相邻,物理上也相邻,以数组的形式保存数据。

原生的数组有何弊端:

a.若数组开辟长度过小,能存储的数据较少。

b.若数组开辟长度过大,则会浪费大量空间。

c.插入和删除效率低。

d.一旦定义一个数组,其长度是固定的,无法修改。

int[ ] arr = new int [10];//定义了一个长度为10的整型数组,此时最多只能存10

动态数组:根据当前存储的数据元素进行数组的扩容(需自己实现),将原生的数组int [ ]做了一层包装,使其具有动态扩容的功能。

顺序表表的优点:

a.便于随机读取,读取数据的速度快。

链表的弊端:

a.由于他顺序的存储结构,不便于插入和删除。

属性:

int[] elementData//存储数据

int size         //当前动态数组中存储了几个元素

所有数据结构无外乎C、R、U、D四大方法:

二、顺序表的常见基本操作:

public void addFirst(int data){};//在数组头部添加元素
public void addLast(int data){};//在数组的尾部添加元素
public void addIndex(int index,int data){};//在数组的索引index处添加元素
private void grow() {}// 内部扩容方法
public String toString() {}//将当前动态数组转换为字符串
public boolean contains(int data) {}判断当前集合中是否包含指定元素data
public void remove(int index){}//删除下标为index的元素
public void removeValue(int value) {}//按值删除,删除线性表中所有值等于value的元素
public int set(int index,int newData) {}//将指定位置index的元素修改为新值newData
private boolean rangeCheck(int index) {}//校验当前传入的index是否合法(用在查询,设置,删除)

 // 取得当前数组长度
public int getSize() {
        return size;
    }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值