dataType [] arrayRefVar; //首选的方法 或 dataType arrayRefVar []; //效果相同,但不是首选
dataType [] arrayRefVar = new dataType[arraySize];
arrays.length;
Java内存
堆 1. 存放new的对象和数组
2.可以被所有的线程共享,不会存放别的对象引用
栈 1.存放基本变量类型(会包含这个基本数据类型的具体数值)
2.引用对象的变量(会存放这个引用在堆里面的具体地址)
方法区 1.可以被所有的线程共享
2.包含了所有的class和static变量
int [] a ={1,2,3}; Man [] mans={new Man(1,1),new Man(2,2)};
int [] a= new int[2]; a[0]=1; a[1]=2;
public static void main(String [] args){ int [] a=new int [2]; System.out.println(a[2]); //ArrayIndexOutOfBoundsException }
int [] arrays = {1,2,3,4,5}; for (int a :arrays) { System.out.println(a); }
static int [] arrays = {1,2,3,4,5}; private static void printArray(int [] arrays){ for (int i = 0; i < arrays.length; i++) { System.out.println(arrays[i]+" "); } } //反转 public static int [] reverse(int [] arrays){ int [] result =new int[arrays.length]; for (int i = 0,j= result.length-1; i < arrays.length; i++,j--) { result[j]=arrays[i]; } return result; }
int a[][]=new int[2][5];
static int [][] array={{1,2,3,4},{5,6,7,8},{9,10,11,12}}; public static void main(String[] args) { for (int [] a :array) { for (int b:a) { System.out.println(b); } } }
private int [] sort(int [] arrays){ //冒泡排序 //1.比较数组中两个相邻的元素,如果第一个数比第二个数大,那就交换他们的位置 //每一次比较,都会产生一个最大或者最小的数字 //下一轮则,可以少一次排序 //依次循环直到结束 //外层循环,判断我们这个要走多少次 for (int i = 0; i < arrays.length; i++) { boolean flag = false; //通过布尔来判断减少没有意义的比较 //内层循环,比较两个数,如果第一个数比第二个大,则交换位置 for (int j = 0; j < arrays.length -1-i; j++) { int a=0; if(arrays[j]>arrays[j+1]){ a=arrays[j+1]; arrays[j+1]=arrays[j]; arrays[j]=a; flag =true; } } if(flag==false){ break; } } return arrays; }
//创建一个二维数组 11*11 0:没棋 1:黑棋 2:白棋 int [][] arrays=new int[11][11]; arrays[1][2]=1; arrays[2][3]=2; System.out.println(); for (int[] a :arrays) { for (int b:a) { System.out.print(b+" "); } System.out.println(); } //转换为稀疏数组 //获取有效值的个数 int sum=0; for (int i = 0; i < 11; i++) { for (int j = 0; j < 11; j++) { if(arrays[i][j]!=0){ sum++; } } } //创建一个稀疏数组的数组 int [][]array=new int[sum+1][3]; array[0][0]=11; array[0][1]=11; array[0][2]=sum; //遍历二维数组,将非零的值,存储到稀疏数组 int count=0; for (int i = 0; i < arrays.length; i++) { for (int j = 0; j < arrays[i].length; j++) { if(arrays[i][j]!=0){ count++; array[count][0]=i; array[count][1]=j; array[count][2]=arrays[i][j]; } } } //输出稀疏数组 System.out.println(); for (int i = 0; i < array.length; i++) { System.out.println(array[i][0]+"\t"+array[i][1]+"\t"+array[i][2]+"\t"); } //还原 //读取稀疏数组 int[][]array3=new int[array[0][0]][array[0][1]]; //给其中的元素还原值 for (int i = 1; i < array.length; i++) { array3[array[i][0]][array[i][1]]=array[i][2]; } //打印 System.out.println(); for (int[] a :arrays) { for (int b:a) { System.out.print(b+" "); } System.out.println(); } }