数组

这篇博客详细探讨了Java中数组的声明、初始化、赋值、数组转置、二维数组处理以及对象数组的静态和动态实例化。还展示了如何使用java.util.Arrays.sort()进行升序排列,并对数组排序和转置进行了实践操作。此外,博客还涉及到了对象数组的管理和排序。
摘要由CSDN通过智能技术生成

数组

数组声明开辟语法:
数据类型 数组名称[] = new 数据类型[长度];
分步语法:数据类型 数组名称 = null;数组名称 = new 数据类型[长度];
数组名称指向栈内存,栈内存存储数组数据内容的堆内存地址。
数组的首位置换思路
对象数组静态化和动态化定义。
数组定义格式 数据类型 数组名称 = new 数据类型[]{值,值}
二维数组可按照一维角度展开显示,也可以使用java.util.Arrays.sort()函数进行升序排列!
数组和方法参数的传递(难点)
数组转置
对象数组:对象数组就是将多个对象交给数组统一管理。
数组的天生缺点:长度固定。

class ArrayDemo0215{
    public static void main(String args[]){
		  //int intA[] = new int[7]{1,2,5,7,9,12,100};
		  //ArrayDemo0215.java:3: 错误: 同时使用维表达式和初始化创建数组是非法的
		  int intA[] = new int[]{1,2,3,4,5,6,7,8,9,10};
		  //数组定义格式  数据类型 数组名称 = new 数据类型[]{值,值}
		  //数组定义后只能通过下标|索引改变数组的赋值。
		  // 如下分步定义失败
		  //int intA[] = new int[7];
		  //intA = int[]{1,2,5,7,9,12,100};
          print(intA);	
          double douA[] = new double[]{10,17,18.8,20.0};
          print(douA);
		  
          //二位数组示范		  
		  int intAB[][] = new int[][]{
			  {1,2,13,4,5},
			  {7,8,9,810,11},
			  {13,814,15,16,17},
			  {19,280,21,22,23},
			  {285,26,287,28,29},
		  };
		 printTwoDimm(intAB); 
		 		 		
         System.out.println("\r数组排序	");
         int arrayAZ[] = new int[]{2,5,12,3,99};
		 print(arrayAZ);
         sort(arrayAZ);
		 print(arrayAZ);
		 
		 		 
		 //数组转置两种方式
		 System.out.println("转置前数组:");
		 print(intA);
		 for(int x = 0 ; x <= (intA.length/2); x++){
			 int temp = intA[x];
			 intA[x] = intA[intA.length-1-x];
			 intA[intA.length - 1- x ] = temp;			 
		 }
		 print(intA); //转置后数组
		 int temp[] = new int[intA.length];
		 for(int x = 0 ; x < intA.length ; x++){
			 temp[x] = intA[intA.length -1 - x];			 
		 }	
		 intA = temp;
         print(intA); //二次转置后数组等于原数组	 
		 
		 //转置正方形的二维数组
		 for(int x = 0 ; x < intAB.length; x++ ){
			 for(int y = 0 ; y < intAB.length ; y++){
				 if( x > y ){  //左下侧数据主动和右上侧数据置换
					 int tempAB = intAB[x][y];
					 intAB[x][y] = intAB[y][x];
					 intAB[y][x] = tempAB ;					 
				 }
			 }
		 }
		  printTwoDimm(intAB); 
		  
		  
		  int array0216[] = new int[]{2,5,12,3,9,1,4,88};
		  print(array0216);
		  java.util.Arrays.sort(array0216);
		  print(array0216);
		  
		  //print(java.util.Arrays.sort(array0216));
		  //???合并执行报错如下:ArrayDemo0215.java:66: 错误: 此处不允许使用 '空' 类型print(java.util.Arrays.sort(array0216))
		  
		  //尝试排序二位数组,可以成功排序
		 for(int x = 0 ; x < intAB.length; x++ ){
			 java.util.Arrays.sort(intAB[x]);
		 }
		  printTwoDimm(intAB); 		  
		  print(intAB[4]);//二位数组可分维打印输出
		  
		
		//对象数组 静态实例化
		Book bkObjectArray[] = new Book[]{
			new Book("java",67.8),
			new Book("jsp",77.8),
			new Book("android",87.8)
		};
		//对象数组动态化
		Book bkObjectArray2[] = new Book[3];
		     //bkObjectArray[0] = {"java",67.8};
		bkObjectArray2[0] = new Book("java",867.8) ;
	    bkObjectArray2[1] = new Book("jsp",877.8) ;
	    bkObjectArray2[2] = new Book("android",887.8) ;
        for( int  x = 0 ; x < bkObjectArray.length ; x++){
			System.out.println(bkObjectArray[x].getInfo());
		}
		
        for( int  x = 0 ; x < bkObjectArray2.length ; x++){
			System.out.println(bkObjectArray2[x].getInfo());
		}
		
	}
	
	
	  
	public static void print(int arr[]){
		System.out.println("\r 整型数组");	
		   for(int x = 0 ; x < arr.length ; x++){
			  System.out.print(arr[x] + "\t");
		  }	  
        System.out.println("");	       	  
	}
	
    public static void print(double arr[]){
		//System.out.println("\r 整型数组");
		   for(int x = 0 ; x < arr.length ; x++){
			  System.out.print(arr[x] + "\t");
		  }	 
         System.out.println("");		  
	}
	
	public static void printTwoDimm(int tempAB[][]){
		System.out.println("\r 二维数组");
	    for(int x = 0 ; x < tempAB.length ; x++){
			  for(int y = 0 ; y < tempAB[x].length ; y++){
				  System.out.print( tempAB[x][y] + "\t"); //内层循环控制数据内容
			  }
			  System.out.println();
		}
	}
	
	
	public static void sort(int arr[]){  //数组倒序排列
	    for(int x = 0 ; x <= arr.length ; x++){
			 for(int y = 0 ; y < arr.length-1   ; y++){
				 if(arr[y] < arr[y + 1]){
					 int temp = arr[y];
					 arr[y] = arr[y + 1];
					 arr[y+1] = temp;
				 }
			 }
		 }	
		System.out.println();	
    }
}


class Book{
	private String title;
	private double price;
	public Book(String t,double p){
		title = t ;
		price = p ;
	}
	
	public String getInfo(){
		return "书名:" + title + "价格:" + price ; 
	}
	
}

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值