Java笔记(一)数组的基本操作

内容来源:链接: Java数组的基本操作

遍历数组元素

使用for循环或foreach语句

//使用for循环
public class Traverse{
	public static void main(String args[]){
		int data[] = new int[]{0,1,2,3,4,5};
		for (int k=0;k<data.length;k++){
			System.out.println("第"+(k+1)+"个元素为"+data[k]);
		}
	}
}
//使用foreach语句
public class Traverse{
	public static void main(String args[]){
		int data[] = new int[]{0,1,2,3,4,5};
		for (int k : data){
			System.out.println(k);
		}
	}
}

填充替换数组元素

数组中的元素定义完成后,可通过Arrays类的静态方法fill()来对数组中的元素进行替换。该方法通过各种重载形式可完成对任意类型的数组元素的替换。fill()方法有两种参数类型。

1、fill(int[ ]a,int value)

该方法可将指定的int值分配给int型数组的每一个元素。

import java.util.Arrays;
public class Fill{
	public static void main(String[] args) {
		int[] data = new int[]{1,2,3};
		Arrays.fill(data, 6);
		for (int k=0;k<data.length;k++){
			System.out.println("第"+(k+1)+"个元素为"+data[k]);
		}
	}
}

2、fill(int []a, int fromIndex, int toIndex, int val);

该方法将指定的int值分配给int型数组指定范围中的每个元素。填充的范围从索引fromIndex(包括)一直到索引toIndex(不包括)。如果fromIndex==toIndex,则填充范围为空。

import java.util.Arrays;
public class Fill{
	public static void main(String[] args) {
		int data[]=new int[]{0,1,2,6,6,6}; 
		Arrays.fill(data,0,3,6);
		for (int k=0;k<data.length;k++){
			System.out.println("第"+(k+1)+"个元素为"+data[k]);
		}
	}
}

如果指定的索引位置大于或等于要进行填充的数组的长度,则会报出ArrayIndexOutOfBoundsException(数组越界异常)异常。

数组排序

通过Arrays类的静态sort()方法可以实现对数组的排序。sort方法提供了多种重载形式,可对任意类型的数组进行升序排序。

Arrays.sort(object);

import java.util.Arrays;
public class Sort{
	public static void main(String[] args) {
		int data[]=new int[]{4,0,3,6,5,7,2}; 
		Arrays.sort(data);
		for (int k=0;k<data.length;k++){
			System.out.println("第"+(k+1)+"个元素为"+data[k]);
		}
	}
}

数组拷贝

Arrays类的copyOf()方法与copyOfRange()方法可以实现对数组的复制。

copyOf()方法是复制数组至指定长度。copyOfRange()方法是将指定数组的指定长度复制到一个新数组中。

1、copyOf()方法

该方法提供了多种重载形式,用于满足不同类型数组的复制。

copyOf(arr,int newlength)

import java.util.Arrays;
public class Copy{
	public static void main(String[] args) {
		int data[]=new int[] {1,2,3};
		int newdata[]=Arrays.copyOf(data,5);
		for (int k=0;k<newdata.length;k++){
			System.out.println("第"+(k+1)+"个元素为"+newdata[k]);
		}
	}
}

2、copyOfRange()方法

该方法同样提供了多种重载形式。

copyOfRange(arr, int fromIndex, int toIndex);

同样包括fromIndex,不包括toIndex。

import java.util.Arrays;
public class Copy{
	public static void main(String[] args) {
		int data[]=new int[] {1,2,3,4,5};
		int newdata[]=Arrays.copyOfRange(data,1,3);
		for (int k=0;k<data.length;k++){
			System.out.println("第"+(k+1)+"个元素为"+newdata[k]);
		}
	}
}

3、System.arraycopy方法

将源数组中指定段拷贝到目标数组的指定段
System.arraycopy(源数组,源开始索引,目标数组,目标开始索引,拷贝长度)

public class Copy{
	public static void main(String[] args) {
		int data1[] = new int[] {0,1,2,3,4,5};
		int data2[] = new int[4];
		System.arraycopy(data1,1,data2,0,4);
		for (int k=0;k<data1.length;k++){
			System.out.println("data1第"+(k+1)+"个元素为"+data1[k]);
		}
		for (int k=0;k<data2.length;k++){
			System.out.println("data2第"+(k+1)+"个元素为"+data2[k]);
		}
	}
}

数组查找

Arrays类的binarySearch()方法,可使用二分搜索法来搜索指定数组 ,以获得指定对象。该方法返回要搜索元素的索引值。binarySearch()方法提供了多种重载形式,用于满足各种类型数组的查找需要。binarySearch()方法有两种参数类型。

1、binarySearch(Object [ ],Object key)

import java.util.Arrays;
public class Search{
	public static void main(String[] args) {
		int arr[]=new int[] {4,25,10};
	    Arrays.sort(arr);
		int index=Arrays.binarySearch(arr,25);
		System.out.println(index);
	}
}

必须在进行此调用之前对数组进行排序(通过sort()方法)。如果没有对数组进行排序,则结果是不确定的。如果数组包含多个带有指定索引值的元素,则无法保证找到的是哪一个。

2、binarySearch(Object [ ],int fromIndex,int toIndex,Object key)

该方法在指定的范围内检索某一元素。

import java.util.Arrays;
public class Search{
	public static void main(String[] args) {
		String strArr[]=new String[] {"ab","cd","ef","gh"};
		Arrays.sort(strArr);
		int index=Arrays.binarySearch(strArr, "ef");
		System.out.println("ef的索引位置是:"+index);
	}
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值