day14- 数组
数组类
Array 类:
Array.toString(a): 输出数组,直接print(a)是输出其hash cold值
1 int[] a = {1,2,3,4,45,67,9989,45}; 2 System.out.println(a); 3 //直接打印a是 hashcode [I@1b6d3586 4 printarr(a); 5 System.out.println(); 6 System.out.println(Arrays.toString(a));
写一个数组遍历函数:
1 public static void printarr(int[] a ){ 2 for (int i = 0; i < a.length; i++) { 3 if(i==0){ 4 System.out.print("["+a[i]+", "); 5 } else if (i== a.length-1) { 6 System.out.print(a[i]+"]"); 7 8 }else { 9 System.out.print(a[i]+", "); 10 } 11 12 13 } 14 }
排序函数:sort
1 int[] a = {1,2,3,4,45,67,9989,45}; 2 Arrays.sort(a); 3 System.out.println(Arrays.toString(a));
冒泡排序:
1 public static void main(String[] args) { 2 3 int[] a = {1,2,3,4,45,67,9989,45}; 4 sort(a); 5 System.out.println(Arrays.toString(a)); 6 } 7 8 //冒泡排序 9 //1.比较数组中相邻的两个元素大小 10 //2. 每次比较选择一个最大或者最小的数字 11 //3. 下一次可以少一次比较排序 12 public static int[] sort(int[] array ){ 13 int temp = 0; 14 //外层循环,判断要走多少次 15 for (int i = 0; i < array.length-1; i++) { 16 //内层循环,交换比较位置 17 for (int j = 0; j < array.length - 1 - i; j++) { 18 if(array[j+1]>array[j]){ 19 temp=array[j]; 20 array[j] = array[j+1]; 21 array[j+1] = temp; 22 } 23 } 24 25 } 26 return array; 27 }
稀疏数组
数组中大部分数为0,存储方便以稀疏数组的形式存储
1 //1. 创建一个二维数组11*11, 0:没有棋子 1:黑棋 2:白棋 2 public static void main(String[] args) { 3 int[][] array1 = new int[11][11]; 4 array1[1][2] = 1; 5 array1[2][3] = 2; 6 7 for(int[] ints:array1){ 8 for (int an :ints){ 9 System.out.print(an +"\t"); 10 } 11 System.out.println(); 12 } 13 //转换为稀疏数组 14 //获取有效值的个数 15 int sum = 0; 16 for (int i = 0; i < 11; i++) { 17 for (int j = 0; j < 11; j++) { 18 if(array1[i][j]!=0){ 19 sum++; 20 } 21 } 22 } 23 System.out.println(sum); 24 int[][] array2 = new int[sum+1][3]; 25 array2[0][0] = array1.length; 26 array2[0][1] = array1.length; 27 array2[0][2] = sum; 28 int count = 0; 29 for (int i = 0; i < array1.length; i++) { 30 for (int j = 0; j < array1[i].length; j++) { 31 32 if(array1[i][j]!= 0 ){ 33 count++; 34 array2[count][0] = i; 35 array2[count][1] = j; 36 array2[count][2] = array1[i][j]; 37 } 38 } 39 } 40 System.out.println("稀疏数组"); 41 for (int i = 0; i < array2.length; i++) { 42 System.out.println(array2[i][0]+"\t"+array2[i][1]+"\t"+array2[i][2]+"\t"); 43 } 44 45 46 47 //还原稀疏数组 48 int[][] array3 = new int[array2[0][0]][array2[0][1]]; 49 for (int i = 1; i < array2.length; i++) { 50 array3[array2[i][0]][array2[i][1]] = array2[i][2]; 51 52 } 53 for(int[] ints:array3){ 54 for (int an :ints){ 55 System.out.print(an +"\t"); 56 } 57 System.out.println(); 58 } 59 60 }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· AI Agent开发,如何调用三方的API Function,是通过提示词来发起调用的吗