java数组基础的基本概念,声明与遍历

简介: java数组基础的基本概念,声明与遍历

数组

数组是在一块连续的内存空间中,一次性存储多个相同数据类型的变量。

数组在内存空间必定是连续的!

数组的基本使用流程:

 ①声明

       数据类型[] 变量名; int[] a;     int []a;    int a[];

   ②分配空间  

       变量名/数组名 = new 数据类型[数组长度];   a = new int[4];

     

   ③数组的声明方式有多种:

       a.声明的同时并分配空间[常用]  

           int[] a = new int[长度];

     

       b.声明并赋值:

           int[] a = new int[]{10,20,30};

           注意:分配空间时,[]中 不能定义数组长度

     

       c.声明并赋值[简单、常用]:

           int[] a = {10,20,30};

           注意:int[] a;

                 a = {10,20,30};    //错误的 error

 

   ④每一个数据格对应的数据称之为元素

   ⑤每一个元素对应的都有其下标,下标范围:0~长度-1

   ⑥元素访问:通过下标取操作元素,称之为元素访问

       为元素赋值:数组名[下标] = 数值;

       取值:数据类型 变量名 = 数组名[下标];

           System.out.println(数组名[下标]);

 

   ⑦数组遍历[重点]:从头到尾,访问每一个元素

       数组长度:数组名.length

       for(int i=0;i<数组名.length;i++){

           //通过数组名[i] 访问元素

       }

         

   注意:a.当访问无效的下标对应的元素时,会导致下标越界,会运行报错

           下标越界异常:java.lang.ArrayIndexOutOfBoundsException;

     

        b.数组的元素,具有默认值

           整数、浮点型 :0、0.0

           字符型:'\u0000'

           布尔类型:false

           对象数据类型:null


数组的默认值:

变量类型

整形变量

浮点数

字符(char)

Boolean

对象类型

默认值

0

0.0

\u0000

False

null

数组的内存存储:

①数组的内存空间是连续的

   ②数组类型的变量存储的是数组的首地址

   ③数组元素的首地址:

       首地址+下标*数据类型字节数

   ④数组下标从0开始,为了提高寻址效率

   ⑤数组类型的变量之间传递的是数组的首地址

 

   特点:寻址效率高,查询快

数组的扩容

①新建一个数组,长度大于原数组

       通过循环,一一将原数组的元素赋值给新数组

 

   ②java.util.Arrays.copyOf(原数组,新数组长度);    //返回值为赋值后的新数组

 

   ③System.arraycopy(原数组,起始下标,新数组,存储元素的起始下标,长度);

       将元素中的从起始下标开始对应的元素,

       一一赋值给新数组中存储的起始下标开始。

数组作为参数和返回值

   ①数组作为参数:实参赋值给形参 赋的是首地址

   ②数组作为返回值:

       返回值类型定义为:数据类型[]

       需要将新数组的地址返回

可变长参数

   ①概念:参数个数不限(0-n),数组形式的参数

   ②语法:数据类型...参数名(定义在形参列表处)

    注意:可变长参数只能放在形参列表的最后

定义一个数组int [] a ={1,2,3,4,5};然后遍历出每个元素的值 。

For(int i=0;i<5;i++){
       System.out.println(a[i]);
}

写一个函数,计算一个整数数组的总和 。

class asum{
       public static void main(String[] args) {
              int a[]=new int[3];
              int sum=0;
              for (int i=0;i<3;i++ ) {
                     a[i]=i;
                     sum=sum+a[i];
                     System.out.println("a["+i+"]="+a[i]+"\tsum="+sum);
              }
       }
}

自定义一个整数数组 a,读入一个整数 n,如果 n 在数组中存在,则输出 n 的下标;如果不存在,输出-1 。    

  import java.util.Scanner;
class xiabiao{
       //自定义一个整数数组 a,读入一个整数 n,如果 n 在数组中存在,则输出 n 的下标;如果不存在,输出-1
       public static void main(String[] args) {
              int a[]={10,11,12,13,15,16,17,18,19,5,6,3,2,1,9};
              Scanner sc = new Scanner(System.in);
              System.out.println("请输入一个数n:");
              int n=sc.nextInt();
              for (int i=0;i<a.length;i++ ) {
                     if (a[i]==n) {
                            System.out.println("该数下标为:"+i);
                            return;
                     }
              }
              System.out.println(-1);
       }
}
目录
相关文章
|
12天前
|
存储 Java 开发者
在 Java 中,如何遍历一个 Set 集合?
【10月更文挑战第30天】开发者可以根据具体的需求和代码风格选择合适的遍历方式。增强for循环简洁直观,适用于大多数简单的遍历场景;迭代器则更加灵活,可在遍历过程中进行更多复杂的操作;而Lambda表达式和`forEach`方法则提供了一种更简洁的函数式编程风格的遍历方式。
|
18天前
|
算法 Java 数据库连接
Java连接池技术,从基础概念出发,解析了连接池的工作原理及其重要性
本文详细介绍了Java连接池技术,从基础概念出发,解析了连接池的工作原理及其重要性。连接池通过复用数据库连接,显著提升了应用的性能和稳定性。文章还展示了使用HikariCP连接池的示例代码,帮助读者更好地理解和应用这一技术。
31 1
|
23天前
|
Java 程序员 编译器
Java|如何正确地在遍历 List 时删除元素
从源码分析如何正确地在遍历 List 时删除元素。为什么有的写法会导致异常,而另一些不会。
18 3
|
25天前
|
存储 缓存 算法
Java 数组
【10月更文挑战第19天】Java 数组是一种非常实用的数据结构,它为我们提供了一种简单而有效的方式来存储和管理数据。通过合理地使用数组,我们能够提高程序的运行效率和代码的可读性。更加深入地了解和掌握 Java 数组的特性和应用,为我们的编程之旅增添更多的精彩。
31 4
|
24天前
|
Java
Java中多线程编程的基本概念和创建线程的两种主要方式:继承Thread类和实现Runnable接口
【10月更文挑战第20天】《JAVA多线程深度解析:线程的创建之路》介绍了Java中多线程编程的基本概念和创建线程的两种主要方式:继承Thread类和实现Runnable接口。文章详细讲解了每种方式的实现方法、优缺点及适用场景,帮助读者更好地理解和掌握多线程编程技术,为复杂任务的高效处理奠定基础。
28 2
|
25天前
|
存储 缓存 算法
提高 Java 数组性能的方法
【10月更文挑战第19天】深入探讨了提高 Java 数组性能的多种方法。通过合理运用这些策略,我们可以在处理数组时获得更好的性能表现,提升程序的运行效率。
22 2
|
1月前
|
存储 Java
Java“(array) <X> Not Initialized” (数组未初始化)错误解决
在Java中,遇到“(array) &lt;X&gt; Not Initialized”(数组未初始化)错误时,表示数组变量已被声明但尚未初始化。解决方法是在使用数组之前,通过指定数组的大小和类型来初始化数组,例如:`int[] arr = new int[5];` 或 `String[] strArr = new String[10];`。
|
1月前
|
前端开发 小程序 Java
java基础:map遍历使用;java使用 Patten 和Matches 进行正则匹配;后端传到前端展示图片三种情况,并保存到手机
这篇文章介绍了Java中Map的遍历方法、使用Pattern和matches进行正则表达式匹配,以及后端向前端传输图片并保存到手机的三种情况。
19 1
|
1月前
|
Java
Java数组动态扩容和动态缩减
Java数组动态扩容和动态缩减
22 3
|
1月前
|
存储 算法 Java
带你学习java的数组军队列
带你学习java的数组军队列
35 0