周五 数组

日常笔记,有什么错误或者有改善的地方多多指教

1. 数组

1.1 数组地址转移问题

//示例
public static void main (String[]args){
    int[] arr1 = new int[15];
    int[] arr2 = new int[13];
    //给不同的数组不同的下标空间进行赋值
    arr1[5] = 15;
    arr2[5] = 10;
    //打印展示
    System.out.println("arr1 :"+ arr1);
    System.out.println("arr2 :"+ arr2);
    //赋值
    arr1[0] = 25;
    //这行代码将arr1数组的首地址赋值给arr1
    arr2 = arr1;
    //定义数组下标号为5的值
    arr1[5] = 18;
    arr2[5] = 15;
    //输出打印,这种情况下第二行arr2会将arr1的下标号为5的值覆盖掉
    System.out.println("arr1 :"+ arr1[5]);
    System.out.println("arr2 :"+ arr2[5]);
    System.out.println("arr1 :"+ arr2[0]);
    
}

2. 数组作为方法的参数

//示例
class HomeWork1 {
    public static void main (String[] args){
        //定义一个数组 int类型 ,变量名为array 长度为10
        int[] array = {10, 8, 35, 67, 31, 25, 11, 30, 28, 99};
   		//定义一个需要查找的元素值
        int find = 11;
        //调用方法将方法的值赋值给index
        //indexof为方法名(数组名,需要查询的元素值);
        int index = indexof(array,find);
        //判断index的值大于0则输出该值
        if (index >= 0){
            System.out.println("index :"+ index);
        } else {
             System.out.println("没有找到该元素");
        }    
 
    }
    /**
    * 在指定数组中,查询指定元素find所在的下标位置,找到返回值等于0,没有找到返回-1
    *
    *@param arr  查询数据的源数据数组,int类型数组
    *@param find 指定在数组中查询的数据,也是int数据类型
    *@reyurn index 找到指定元素,返回值大于等于0,否则返回-1
    */
    
    public static void indexof(int[] arr,int find){
        //假设查询的数据不存在
        int index = -1;
        //循环遍历整个数组
        for (int i = 1; i < arr.length; i++){
            //发现数组中下标为i的袁旭和find一致,找到内容,保存下标
            if (find == arr[i]){
                //将i赋值给index
                index = i;
                break;      
            }
            //返回index中的数据
        }return index;
    }
}

2.1 数组小总结

1. 数组作为方法参数固定格式
    (数组类型[]数组参数名)
    2. 数组作为方法的实际参数固定格式
    (数组名)
    3.数组名作为方法的参数,实际传递的是数组空间的首地址,跟数组地址转移的问题是一致的
    4. 方法执行需要参数,如果没有给予对应格式的实际参数,直接报错。

2.2 小练习

/*
需求
	完成一个方法,给int类型数组保存的元素进行赋值操作,所有元素内容全部赋值为100
*/
class HomeWoek2 {
    public static void main (String[]args){
       //定义一个int类型的数组,长度为18
        int []  intarray = new int[18];
        //调用方法并使用intarray的数组
        assignIntArray(intarray);
        //利用循环展示intarray数组
        for(int i = 0; i < intarray.length; i++ ){
            System.out.println(intarray[i] + " ");
        }
    }
    /**
    *@param arr  int类型数据
    *
    * 传入一个int类型的数据,把当前数组的所有元素全部赋值为100
    */
    
    public static void assignIntArray (int[] arr){
        //利用循环可以遍历数组来进行赋值操作
        for(int i = 0; i < arr.length; i++){
            arr[i] = 100;
                
        }
        
    }
}
/*
需求:
	使用A数据,替换指定数组中B数据
	例如:
		原始数据:
		int[] arr = {1, 2, 3, 4, 5, 1, 2, 3, 4, 5}
		替换所有元素值 == 5 ==> 100
		结果 Result
		int[] arr = {1, 2, 3, 4, 100, 1, 2, 3, 4, 100}
*/
class HomeWork3 {
	public static void main (String []args){
        int[] arr = {15, 18, 55, 78, 60, 654, 846, 15, 36, 10};
        replace(arr,10,88);
        
        for(int i = 0;i < arr.length; i++){
            System.out.println(arr[i]+" ");
            
        } System.out.println();
    }
    /**
    * 使用newnum数据 来替代指定数组arr中olenum的数据
    *
    *@param arr 指定int类型的数据
    *@param oldnum 被替换的数据
    *@param newnum 替换使用的新数据
    */
    public static void replace (int[] arr,int newnum,int oldnum){
      
        for (int i = 0; i < arr.length;i|++){
          
            if(oldnum == arr[i]){
               
                arr[i] = newnum;
            }
        }
        
        
    }

}
/*
需求:
	存在一个int类型数组,使用方法逆序数组中的元素
	例如:
		int[] arr = 
		{1, 2, 3, 4, 5};
		执行之后
		{5, 4, 3, 2, 1};
*/
class HomeWork4 {
	public static void main (String []args){
		int[] arr = {1, 2, 8 , 9, 61, 81, 28, 65, 15, 10};
		
		reverse(arr);
		for(int i = 1; i < arr.length ; i++){
			
			System.out.println(arr[i]+ " ");
		}
		
		/**
		*数值逆序
		*
		*@param arr需要被逆序的一个int类型的数组
		*/
	}
	public static void reverse(int[]arr){
		
		for (int i = 0; i < arr.length/2; i++ ){
			int temp = arr[i];
			arr[i] =arr[arr.length - 1 - i];
			arr[arr.length - 1 - i] = temp;
			
		}
		
	}
	
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值