Java数组

一、数组的特点

  • 数组的每个元素同类型
  • 数组的长度在申明后不可变
  • 类型:基本数据类型引用类型对象

二、数组的创建

  • 两步走:申明(确定长度)和分配变量

申明:

type[] arrName;   //推荐用法
type arrName[];

举个例子:

public class Test {
    public static void main(String args[]) {
        int[] s = null; // 声明数组;
        s = new int[10]; // 给数组分配空间;
        for (int i = 0; i < 10; i++) {
            s[i] = 2 * i + 1;//给数组元素赋值;
            System.out.println(s[i]);
        } 
    }
}

注意事项:声明的时候并没有实例化任何对象,只有在实例化数组对象时,JVM才分配空间,这时才与长度有关。

三、数组的初始化

1. 静态初始化

int[] a = { 1, 2, 3 };// 静态初始化基本类型数组;
Man[] mans = { new Man(1, 1), new Man(2, 2) };// 静态初始化引用类型数组;

2.动态初始化

int[] a1 = new int[2];//动态初始化数组,先分配空间;
a1[0]=1;//给数组元素赋值;
a1[1]=2;//给数组元素赋值;

3.默认初始化

int a2[] = new int[2]; // 默认值:0,0
boolean[] b = new boolean[2]; // 默认值:false,false
String[] s = new String[2]; // 默认值:null, null

四、二维数组

1.二维数组的申明

public class Test {
    public static void main(String[] args) {
        // Java中多维数组的声明和初始化应按从低维到高维的顺序进行
        int[][] a = new int[3][];
        a[0] = new int[2];
        a[1] = new int[4];
        a[2] = new int[3];
        // int a1[][]=new int[][4];//非法
    }
}

2. 静态初始化

int[][] a = {{1,2},{3},{4,5,6}};

3.动态初始化

int[][] a = new int[2][];
a[0] = new int[]{1,2,3};
a[1] = new int[]{3,5};

4.使用二维数组
(1) 获取长度

/获取的二维数组第一维数组的长度。
System.out.println(a.length);
//获取第二维第一个数组长度。
System.out.println(a[0].length);

(2) 输出

System.out.println(a[0][2]);
System.out.println(Arrays.toString(a[0]));

(3) 打印全部元素
for循环版:

int[][] a =  {{1,2,3},{4,5,6},{7,8,9}};
for(int i = 0;i<a.length;i++){
	for(int j = 0;j<a[i].length;j++){
		System.out.print(a[i][j]);
		}
		 System.out.println();
	}

foreach版:

int[][] array = {{1,2,3},{4,5,6},{7,8,9}};
    for(int[] a: array){ 
        for(int m: a){
            System.out.print(m); 
        }
        System.out.println();
   }

五、foreach语句

int[] a = {1,2,3,4,5};
for(int x : a){
	System.out.println(x);
	}

注意: for-each增强for循环在遍历数组过程中不能修改数组中某元素的值。

六、数组操作的常用类java.util.Arrays类

  • 比较数组:equals()方法 (deepEquals()用于多维数组)

  • 打印数组:Arrays.toString(数组名);

  • 数组排序:Arrays.sort(数组名);

  • 二分查找:Arrays.binarySearch(数组名,查找的元素)。

  • 元素替换:Arrays.fill(数组名,元素值)

  • 数组复制:Arrays.copyOf(数组名,复制后新数组的长度)
    System.arraycopy(数组1,i,数组2,j,需要复制的元素的个数)

以上具体方法查看官方文档,或者使用编译器时可查看。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值