java小白自学笔记——Day2(主要是关于数组的一些简单操作)

     1).数组的建立

      在Java中keyi通过:(类型名[] 数组名)或(类型名 数组名[])申明一个数组.数组在使用前需要在内存中开辟一块内存空间用来存放数据,否则会抛出空指针异常,可以通过关键字new给数组分配内存,也可以使用通过在静态初始化时隐式的给数组分配与初始化元素个数相同的数组空间。

如:

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

    这段伪代码便定义了一个整型数组

    2)数组的赋值

     数组的赋值有两种:静态初始化、动态初始化

  • 静态初始化:通过(类型[] 数组名={元素,元素...})或(类型[] 数组名=[]{元素,元素...})的方式为数组初始化,数组将自动分配一个与元素个数相同的内存空间
  • 动态初始化:通过(类型[] 数组名=new 类型[大小])为数组分配内存,通过(数组名[下标]=数据)为数组初始化赋值

      静态初始:可以参考1)中的样例

      动态初始:参考伪代码如下:

        Scanner sc=new Scanner(System.in);
		int n=sc.nextInt();
		int array[]=new int[n];
		int i;
		for(i=0;i<array.length;i++)
		{
			array[i]=sc.nextInt();
		}
		

         以上的这段伪代码便展示了动态初始化的基本过程,值得注意的是,与c语言不同,java在数组的动态初始化上,可以更精确的分配内存空间。

3)数组的遍历

    常使用for循环或foreach遍历数组,流程差不多,伪代码实现如下

              int[] arr={1,2,3};
		      // 使用for循环遍历数组
		      for(int i=0;i<arr.length;i++){
		          System.out.print(arr[i]+", ");
		      }
		
		     // 使用foreach遍历数组
		      for(int i : arr){
		          System.out.print(i+", ");

4)数组的填充替换

    主要是调用Arrays类的静态方法fill()来实现的,利用fill()方法的各种重载形式可以实现队数组元素的替换。主要有以下两种fill()方法的使用方法:

    1.fill(byte[] array,byte value)

    2.fill(byte[] array,int frontindex,int toindex,byte value):

         frontindex:填充的第一个元素的索引(包括)

         toindex:填充的最后一个元素的索引(不包括)

4)数组的复制

      与填充替换类似,有两类方法可以实现数组的复制功能

         1.copeOf(array,int newlength)

          newlength:新数组的长度

        2.copyOfRange(array,int frontindex,int toindex)

         frontindex:前索引(包括)

         toindex:后索引(不包括)

4)数组的排序

      调用Arrays类的sort()方法即可,sort()方法提供了多种重载的形式,用于排序十分的方便

   例如这段代码就利用sort()方法进行了简单的数组排序:

package project;
import java.util.Scanner;
import java.util.Arrays;
public class iprojet {
	public static void main(String[] args) {
		 Scanner sc=new Scanner(System.in);
		 int n=sc.nextInt();//输入数组长度
		 int array[]=new int[n];//定义新数组
		 int i;
		 for(i=0;i<array.length;i++)//填充数组
		 {
			 array[i]=sc.nextInt();
		 }
		 Arrays.sort(array);//进行排序
		 for(i=0;i<array.length;i++)//输出数组
		 {
			 System.out.print(array[i]+" ");
		 }
	}			
}

4)数组的查询

     该过程的实现主要依赖于调用Arrays类的binarySearch()方法,本质其实为二分搜索指定数组从而返回索引值。该方法有多种重载的形式,便于查询各种形式的数组。该方法的参数类型主要有两种。但值得注意的一点是无论哪类参数类型,都必须经过排序后才能正常进行查询。

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

   2.binarySearch(Object[] a,int frontindex,int toindex,Object key)

        frontindex:前索引(包括)

         toindex:后索引(不包括)

    例如这段代码就进行了查询数组中元素”2“的索引

ackage project;
import java.util.Arrays;
public class iproject {
	public static void main(String[] args) {
		 int array[]=new int[] {1,3,2,4,6};
		 Arrays.sort(array);
		 int x=Arrays.binarySearch(array,2);
		 System.out.println(x);
	}			
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值