数组

数组 也叫线性表

  • 数组是相同类型元素的集合。
  • 在内存中连续存储。
  • 元素之间相邻存储。

数组的缺陷

1、数组的大小固定,存储空间预先分配,分配多了容易造成空间浪费,
少了容易造成溢出。
2、删除和插入操作,操作复杂。

数组的动态扩展

参考:数组的malloc内存动态分配

数组的操作

1、创建数组
创建数组时必须使用new操作符。
a.int[] intArray;
b.intArray=new int[100];
2、访问数组的数据项
通过数组的下标来访问数据项。
temp=intArray[3];//访问数组中的第4个元素

时间复杂度大O

线性查找 O(N)
二分查找 O(logN)
无序数组的插入 O(1)
有序数组的插入 O(N)
无序数组的删除 O(N)
有序数组的删除 O(N)

数组的扩展Vector类

  • Vector 类可以实现可增长的对象数组。与数组一样,它包含可以使用整数索引进行访问的组件。但是,Vector 的大小可以根据需要增大或缩小,以适应创建 Vector 后进行添加或移除项的操作。

  • 每个向量会试图通过维护 capacity 和 capacityIncrement 来优化存储管理。capacity 始终至少应与向量的大小相等;这个值通常比后者大些,因为随着将组件添加到向量中,其存储将按 capacityIncrement 的大小增加存储块。应用程序可以在插入大量组件前增加向量的容量;这样就减少了增加的重分配的量。

public class VectorDemo {
    
    public static void main(String[] args) {
        Vector<Integer> v=new Vector<Integer>(2);
    /*  public synchronized boolean add(E e) {
            modCount++;
            ensureCapacityHelper(elementCount + 1);
            elementData[elementCount++] = e;
            return true;
        }*/
        System.out.println("v size"+v.size());
        v.add(1);
        System.out.println(v.size());
        v.add(2);
        v.add(3);
        System.out.println(v.size());
        v.addElement(4);
        System.out.println(v.size());
        /*public synchronized void addElement(E obj) {
            modCount++;
            ensureCapacityHelper(elementCount + 1);
            elementData[elementCount++] = obj;
        }*/

        
    }

}

转载于:https://www.cnblogs.com/Jhon95/p/6165707.html

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值