2021.11.10 Java 数组

本文详细介绍了Java中数组的概念、优缺点以及操作方法。数组在堆内存中存储,具有高效查找特性,但增删操作效率低。内容涵盖一维数组的声明、初始化、遍历,数组越界异常,以及二维数组的表示和访问。还讨论了数组扩容的低效问题,推荐使用`System.arraycopy()`方法,并介绍了`Arrays`工具类进行排序和查找的功能。

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

数组
数组存放在堆内存中,是引用数据类型,只能存放Java对象的内存地址。
在这里插入图片描述
·优点:查找某个下标上的元素效率极高
1.数组以第一个元素内存地址已知
2.数组上每个内存地址是连续的
3.数组中每个元素所占空间大小是一样的
4.知道下标,所以知道偏移量,就能够算出指定下表内存地址
所以数组是查找效率最高的数据结构
(数组中存储100个元素和100W个元素检索效率是相同的,数组中不会一个一个找,是通过数学表达式算出来然后直接定位)
·缺点:
1.由于为了保证每个元素的内存地址连续,所以在数组上随机删除或增加元素效率较低,因为会涉及到后面元素同一向前向后位移的操作。(对最后一个元素增删,没有效率影响)
2.数组不能存储大数据量,很难在内存空间上找到特别大的连续内存空间

声明一维数组语法:
int[] arrary1;
double[] arrary2;
boolean[] array3;
String[] array4;
Object[] array5;
初始化一维数组:
·静态初始化
int[] array={100,200,330}
·动态初始化一维数组:
int[] array= new int[5]; //5表示元素个数,默认值为0

第一个元素 a[0],最后一个元素a[a.length-1]
遍历一位数:
for(int i=0;i++;i<a.length){
System.out.println(a[i]);
}

数组下标越界异常:ArrayIndexOutOfBoundsException

在这里插入图片描述

静态初始化:
Object o1=new Object();
Object o2=new Object();
Object o3=new Object();
Object[] objects={o1,o2,o3};
或者:Object[] objects={new Object(),new Object(),new Object()};

定义 输出数组:

 public class Test {
   
   
    public static void main(String[] args) {
   
   

            int[] a={
   
   1,2,3};
            print(a);
            System.out.println("===================");
            int[] b=new int[3];
            print(b);
            System.out.println("===================");
            print(new int[3]);
            print(new int[]{
   
   1,2,
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值