首页 > 编程语言 > 详细

java数组

时间:2021-03-07 15:26:48      阅读:30      评论:0      收藏:0      [点我收藏+]

数组

一、数组概述

数组的定义

  • 数组是相同类型数据的有序集合。

  • 数组描述的是相同类型的若干个数据,按照一定的先后次序排列组合而成。

  • 其中,每一个数据称作一个数组元素,每个数组元素可以通过一个下标来访问它们。

 

二、数组的声明和创建

  • 首先必须声明数组变量,才能在程序中使用数组。下面是声明数组变量的语法:

 int[] nums;//声明一个数组
//数组类型[] 数组名;
  • java语言使用new操作符来创建数组,语法如下:

nums = new int[10];//创建一个数组
//数组名 = new 数组类型[容量];

也可以一起写

 int [] num2 = new int[20];
       //语法 数组类型 [] 数组名 = new 数组类型[数组容量];

 

  • 数组元素是通过索引访问的,数组索引从0开始。

  • 获取数组长度:

arrays.length

内存分析

存放new的对象和数组

可以被所有的线程共享,不会存放别的对象引用

存放基本变量类型(会包含这个基本类型的具体数值)

引用对象的变量(会存放这个引用在堆里面的具体地址)

技术分享图片

内存的三种初始化

静态初始化

不需要new操作符,可以直接创建一个数组

//静态初始化 创建+赋值
       int[] nums3 ={1,2,3,4,5,6};

动态初始化

 // 动态初始化
       int[] nums4 = new int[10];
       nums4[0]=1;
       nums4[1]=1;
       nums4[2]=1;
       nums4[3]=1;
       nums4[4]=1;
       nums4[5]=1;
       nums4[6]=1;
       nums4[7]=1;

默认初始化

整形数组 默认初始值为0;

布尔数组默认初始值为 false;

String 数组以及 对象数组初始值为 null.

数组的四个基本特点

  • 其长度是确定的。数组一旦被创建,它的大小是不可以改变的。

  • 其元素必须是相同类型,不允许出现混合类型.

  • 数组走的元素可以是任何的数据类型,包括基本类型和引用类型。

  • 数组变量属于引用类型,数组也可以看作对象,数组中的每个元素相当于该对象中的成员变量。

数组本身就是对象,Java中对象是在堆中的,因此数组无论保存原始类型还是其他对象类型,数组对象本身是在堆中的。

数组边界

下标合法区间:[0.length-1(长度-1)],如果越界就会报错;

public static void main (String[]args){
   int[] a = new int[2];
   System.out.println(a[2]);
}

ArrayIndexOutOfBoundsExceptiom:数组下标越界异常!

小结:

  • 数组是相同数据类型(数据类型可以为任意类型)的有序集合。

  • 数组也是对象。数组元素相当与对象的成员变量

  • 数组长度是固定的,不可以越界,如果越界则报:ArrayIndexOutOfBoundsExceptiom

三、数组的使用

1.利用下标来读取数组中的元素:

2.用for-each循环来遍历数组:

它可以在不使用下标的情况下使用遍历数组,格式如下:

for(type element:arry){
   System.out.println(element)
}

3.数组可以作为方法的参数和方法的返回值;

四、多维数组

多维数组可以看成是数组的数组,比如二维数组就是一个特殊的一维数组,其每一个元素都是一个一维数组,例如:

String str [][] = new String[3][4]

str数组可以看做一个三行四列的数组,把单行的数组提升至一个平面,利用两个下标来确定一个元素。

 

五、Arrays类

ava.util.Arrays 类能方便地操作数组,它提供的所有方法都是静态的。

具有以下功能:

  • 给数组赋值:通过 fill 方法。

  • 对数组排序:通过 sort 方法,按升序。

  • 比较数组:通过 equals 方法比较数组中元素值是否相等。

  • 查找数组元素:通过 binarySearch 方法能对排序好的数组进行二分查找法操作。

具体说明请查看下表:

序号方法和说明
1 public static int binarySearch(Object[] a, Object key) 用二分查找算法在给定数组中搜索给定值的对象(Byte,Int,double等)。数组在调用前必须排序好的。如果查找值包含在数组中,则返回搜索键的索引;否则返回 (-(插入点) - 1)。
2 public static boolean equals(long[] a, long[] a2) 如果两个指定的 long 型数组彼此相等,则返回 true。如果两个数组包含相同数量的元素,并且两个数组中的所有相应元素对都是相等的,则认为这两个数组是相等的。换句话说,如果两个数组以相同顺序包含相同的元素,则两个数组是相等的。同样的方法适用于所有的其他基本数据类型(Byte,short,Int等)。
3 public static void fill(int[] a, int val) 将指定的 int 值分配给指定 int 型数组指定范围中的每个元素。同样的方法适用于所有的其他基本数据类型(Byte,short,Int等)。
4 public static void sort(Object[] a) 对指定对象数组根据其元素的自然顺序进行升序排列。同样的方法适用于所有的其他基本数据类型(Byte,short,Int等)。

java数组

原文:https://www.cnblogs.com/is0919/p/14493554.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!