Java学习笔记:数组及其基本操作

数组是具有相同数据类型的一组数据的集合,在Java中将数组看作一个对象。

1、数组的创建及初始化

①一维数组

a.先声明,再用new运算符分配内存

声明一维数组有两种形式(以int类型为例)

(1)数组元素类型 数组名字[ ]; int arr[ ];

(2)数组元素类型[ ] 数组名字;int[ ] arr;

声明数组后,还不能真正使用数组,需要为其分配内存空间,语法格式如下:

数组名字 = new 数组元素类型[数组元素的个数];arr=new int[10];

从上面我们知道,这种方法 需要两个语句,比较浪费时间,因此我们可以把两局话合在一起,也就是我们的第二种方法

b.声明的同时为数组分配内存

int arr[ ]=new int[12];

这个语句创建了数组arr,也为他分配了12个int长度的空间,这也是Java程序中的普遍做法

一维数组的初始化有以下两种形式:

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

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

 

② 二维数组

二维数组同样可以把声明和分配数组拆开或合起来,只是把一维中的每个元素再看成一个一维数组。

int arr[ ][ ]=new int[2][4];

初始化:int arr[ ][ ]={{1,2,3,4},{1,2,3,4}};

2、数组的基本操作

①遍历数组

a.用for循环实现

可以通过数组的length属性得到数组长度:arr.length

public class First {
	public static void main(String[] args) { 
		int arr[][]=new int[][] {{1,2,3},{1,2,3},{1,2,3}};
		for(int i=0;i<arr.length;i++)
		{
			for(int j=0;j<arr[i].length;j++)
				System.out.print(arr[i][j]);
			System.out.println();
		}
	}
}
/*运行结果:
123
123
123
*/

b.使用foreach语句遍历

foreach语句单独来讲

 

②填充替换数组元素

通过Arrays类的静态方法fill( )进行替换。

a.fill(int[ ] a,int value)

此方法用value值讲a数组中的所有元素值进行替换。

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

此方法将 指定的value值分配给数组a中指定位置的元素,范围为fromIdex(包括)——toIndex(不包括)。

import java.util.Arrays;

public class First {
	public static void main(String[] args) { 
		int arr[]=new int[] {1,2,3,4,5,6,7,8};
		int arr1[]=new int[] {1,2,3,4,5,6,7,8};
		Arrays.fill(arr, 8);
		Arrays.fill(arr1,2,4,5);
		for (int i = 0; i < arr1.length; i++) {
			System.out.print(arr[i]);
		}
		System.out.println();
		for (int i = 0; i < arr1.length; i++) {
			System.out.print(arr1[i]);
		}
	}
}
/*运行结果:
88888888
12555678
*/

 

③数组排序

通过Arrays类的 静态sort()方法可法 实现对数组的排序。

Arrays.sort(arr);

import java.util.Arrays;

public class First {
	public static void main(String[] args) { 
		int arr[]= {3,5,4,7,9,6,1,2,8};
		Arrays.sort(arr);
		for (int i = 0; i < arr.length; i++) {
			System.out.print(arr[i]);
		}
	}
}
//结果:123456789

④数组复制

a.copyOf方法

复制数组至指定长度,若新数组长度大于原数组,则不足位用0填充(char类型用null,bool类型用false)。

 语法:Arrays.copyOf(arr, int new length);

b.copyOfRange方法

将指定数组的指定长度 复制到一个新数组。

语法:Arrays.copyOfRange(arr,int fromIndex,int toIndex);

import java.util.Arrays;

public class First {
	public static void main(String[] args) { 
		int arr[]= {3,5,4,7,9,6,1,2,8};
		int arr1[]=Arrays.copyOf(arr, 10);//长度为10,不足位用0代替
		int arr2[]=Arrays.copyOfRange(arr, 0, 5);//不包括第5个
		for (int i = 0; i < arr1.length; i++) {
			System.out.print(arr1[i]);
		}
		System.out.println();
		for (int i = 0; i < arr2.length; i++) {
			System.out.print(arr2[i]);
		}
	}
}
/*结果:
3547961280
35479
*/

⑤数组查询

a.binarySearch(Object[ ] a,Object key)

Arrays类的binarySearch方法, 使用二分搜索来搜索指定数组,返回要搜索元素的索引值。 使用前需要进行排序,否则查找结果不稳定。

b.binarySearch(Object[ ] a,int form,int to,Object key)

搜索指定范围,不包括结束处(to)。

import java.util.Arrays;

public class First {
	public static void main(String[] args) { 
		int arr[]= {3,5,4,7,9,6,1,2,8};
		Arrays.sort(arr);
		int index=Arrays.binarySearch(arr, 2);
		int index1=Arrays.binarySearch(arr,0,5,5);
		System.out.println(index);
		System.out.println(index1);
	}
}
/*结果:
1
4
*/

有关于数组的基本知识就介绍到这里,以后还会慢慢补充,请期待~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值