不积跬步,无以至千里;不积小流,无以成江海。

 

Java语言基础

 

Java数组

数组是在内存中存储相同数据类型的连续的空间;
数组名中引用的是这块连续空间的首地址;
通过首地址可以依次访问数组所有元素;
数组的长度一旦确定,就不能修改。
 
一维数组的声明:
type var[] 或 type[] var

静态初始化

int arr[] = new int[]{1,2,3};
或
int arr[] = {1,2,3};

动态初始化

int arr[] = new int[3];
a[0] = 1;
a[1] = 2;
a[2] = 3;

注意:左边int arr[]中不能写值。

每个数组都有一个length属性指明它的长度,对于上述声明的数组,长度为 arr.length。

数组是引用类型,它的元素相当于类的成员变量,因此数组一经分配空间,每个元素就会被初始化。

   

示例:

import java.util.Scanner;

public class Test {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Scanner scanner = new Scanner(System.in);
		int arr[] = new int[10];
		for (int i = 0; i < arr.length; i++) {
			System.out.print(arr[i] + " ");
		}
		System.out.println();
		System.out.println("依次输入10个数:");
		for (int i = 0; i < arr.length; i++) {
			arr[i] = scanner.nextInt();
		}
		for (int i = 0; i < arr.length; i++) {
			System.out.print(arr[i] + " ");
		}

	}

}

  

二维数组

静态初始化:

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

动态初始化:

int arr[][] = new int[3][2];
或
int arr[][] = new int[3][];

如果是第一个,则表示:二维数组中有三个一维数组,每个一维数组中有两个元素。

如果是第二个,则表示:二维数组中有三个一维数组,每个一维数组都是默认初始化值null。

注意:

int arr[][] = new int[][2];//非法

多维数组不一定都是规则矩阵形式,长度可不同。

 

二维数组的长度: 

//定义一个整型数组:3行4列
int a[][] = new int[3][4];
//获取行数(3行)
int x = a.length;
//获取列数(4列)
int y = a[0].length; 

使用For-Each循环遍历数组:

public class Test {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		int a[] = new int[]{1,2,3};
		int b[] = {4,5,6};
		for (int i = 0; i < a.length; i++) {
			System.out.print(a[i] + " ");
		}
		System.out.println();
		for (int temp : b) {
			System.out.print(temp + " ");
		}

	}

}

 

数组的Arrays类

常用的三种方法功能:

1.通过 fill 方法,给数组赋值。

原型:

Arrays.fill(int a[], int value) 
Arrays.fill(int arr[], int fromIndex, int toIndex, int value)

示例:

import java.util.Arrays;

public class Test {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		int a[] = new int[5];
		int b[] = new int[5];
		Arrays.fill(a, 1);
		Arrays.fill(b, 1,2,3);
		for (int i = 0; i < a.length; i++) {
			System.out.print(a[i] + " ");
		}
		System.out.println();
		for (int i = 0; i < b.length; i++) {
			System.out.print(b[i] + " ");
		}

	}

}

结果:

1 1 1 1 1 
0 3 0 0 0 

  

2.通过 sort 方法,将数组按升序。

原型:

Array.sort(arr);

示例:

import java.util.Arrays;

public class Test {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		int a[] = {2,3,1,6,4,5};
		Arrays.sort(a);
		for (int i = 0; i < a.length; i++) {
			System.out.print(a[i] + " ");
		}

	}

}

结果:

1 2 3 4 5 6 

  

3.通过copyOf方法,拷贝数组。

原型:

Arrays.copyOf(arr, int newArrayLength);
Arrays.copyOfRange(arr,int fromIndex, int toIndex);

示例:

import java.util.Arrays;

public class Test {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		int a[] = {2,3,1,6,4,5};
		int b[] = Arrays.copyOf(a, a.length);
		int c[] = Arrays.copyOfRange(a, 1, 3);
		for (int i = 0; i < b.length; i++) {
			System.out.print(b[i] + " ");
		}
		System.out.println();
		for (int i = 0; i < c.length; i++) {
			System.out.print(c[i] + " ");			
		}

	}

}

结果:

2 3 1 6 4 5 
3 1 

  

posted on 2019-11-05 16:46  smile学子  阅读(169)  评论(0编辑  收藏  举报