java数组

时间:2021-03-07 15:26:48   收藏:0   阅读:32

数组

一、数组概述

数组的定义

 

二、数组的声明和创建

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

也可以一起写

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

 

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:数组下标越界异常!

小结:

三、数组的使用

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

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

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

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

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

四、多维数组

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

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

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

 

五、Arrays类

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

具有以下功能:

具体说明请查看下表:

序号方法和说明
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等)。

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

评论(0
© 2014 bubuko.com 版权所有 - 联系我们:wmxa8@hotmail.com
打开技术之扣,分享程序人生!