1. public class ArrayDemo01 {
  2. public static void main(String[] args) {
  3. int[] nums; // 1.定义
  4. nums=new int[10]; // 2.创建一个数组
  5. // 3.给数组元素赋值
  6. nums[0]= 1;
  7. // 获取数组长度 arrays.length
  8. System.out.println(nums.length);
  9. }
  10. }

  1. public class ArrayDemo02 {
  2. public static void main(String[] args) {
  3. // 静态初始化 创建+赋值
  4. int [] a={1,2,3,4,5,6,7,8};
  5. Man[] men={new Man(),new Man()};
  6. // 动态初始化:包含默认初始化
  7. int[]b=new int[10];
  8. b[0]=10;
  9. }
  10. }
  11. public class Man {
  12. }

  1. public class ArrayDemo03 {
  2. public static void main(String[] args) {
  3. int[] arrays={1,2,3,4,5};
  4. //打印全部数组元素
  5. for (int i=0;i<arrays.length;i++){
  6. System.out.println(arrays[i]);
  7. }
  8. System.out.println("====================");
  9. //增强型for循环
  10. //arrays.for 自动生成增强型for循环
  11. //JDK1.5,没有下标,取不到下标
  12. for (int array : arrays) {
  13. System.out.println(array);
  14. }
  15. }
  16. }

  1. public class ArrayDemo04 {
  2. public static void main(String[] args) {
  3. int[][]array={{1,2},{3,4},{5,6}};
  4. int[] a={1,2,3,4,231,15,67,121};
  5. //打印数组元素
  6. System.out.println(a);// [I@1b6d3586
  7. System.out.println(Arrays.toString(a)); // [1, 2, 3, 4, 231, 15, 67, 121]
  8. Arrays.sort(a); //数组进行排序
  9. System.out.println(Arrays.toString(a)); // [1, 2, 3, 4, 15, 67, 121, 231]
  10. }
  11. }

  1. import java.util.Arrays;
  2. public class ArrayDemo05 {
  3. public static void main(String[] args) {
  4. int[] a={123,6,5432,31,524,9876};
  5. int []sort=sort(a);
  6. System.out.println(Arrays.toString(sort)); //[9876, 5432, 524, 123, 31, 6]
  7. }
  8. //冒泡排序
  9. //1. 比较数组中,两个相邻的元素,如果前一个比后一个大,就交换二者位置
  10. //2. 每一次比较都会产生一个最大或最小的数字
  11. //3. 下一轮,可以少一次排序!
  12. public static int[] sort(int[]array){
  13. int temp;
  14. boolean flag =false; //通过flag标识位减少没有意义的比较
  15. //外层循环,判断要走多少次
  16. for (int i = 0; i < array.length; i++) {
  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. flag=true;
  23. }
  24. }
  25. if (!flag){
  26. break;
  27. }
  28. }
  29. return array;
  30. }
  31. }

  1. import java.util.Arrays;
  2. public class ArrayDemo06 {
  3. public static void main(String[] args) {
  4. //1.创建一个二维数组 11*11 0:没有棋子 1:黑棋 2:白棋
  5. int [][]array1=new int [11][11];
  6. array1[1][2]=1;
  7. array1[2][3]=2;
  8. System.out.println("原始数组:");
  9. //输出原始的数组
  10. for (int[]ints:array1){
  11. for (int anInt:ints){
  12. System.out.print(anInt+"\t");
  13. }
  14. System.out.println();
  15. }
  16. //转换为稀疏数组
  17. //获取有效值的个数
  18. int sum=0;
  19. for (int i=0;i<11;i++){
  20. for (int j = 0; j < 11; j++) {
  21. if (array1[i][j]!=0){
  22. sum++;
  23. }
  24. }
  25. }
  26. //2. 创建一个稀疏数组
  27. int[][]array2=new int[sum+1][3];
  28. array2[0][0]=11;
  29. array2[0][1]=11;
  30. array2[0][2]=sum;
  31. //遍历二维数组,将非零的值,存放到稀疏数组中
  32. int count=0;
  33. for (int i=0;i<array1.length;i++){
  34. for (int j = 0; j < array1[i].length; j++) {
  35. if (array1[i][j]!=0){
  36. count++;
  37. array2[count][0]=i;
  38. array2[count][1]=j;
  39. array2[count][2]=array1[i][j];
  40. }
  41. }
  42. }
  43. //输出稀疏数组
  44. System.out.println("稀疏数组:");
  45. for (int[]ints:array2){
  46. for (int anInt:ints){
  47. System.out.print(anInt+"\t");
  48. }
  49. System.out.println();
  50. }
  51. //还原稀疏数组
  52. //1.读取稀疏数组
  53. int[][]array3=new int[array2[0][0]][array2[0][1]];
  54. //2.给其中的元素还原它的值
  55. for (int i = 0; i < array3.length; i++) {
  56. Arrays.fill(array3[i],0);
  57. }
  58. for (int i = 1; i < array2.length; i++) {
  59. array3[array2[i][0]][array2[i][1]]=array2[i][2];
  60. }
  61. System.out.println("还原稀疏数组:");
  62. for (int[]ints:array3){
  63. for (int anInt:ints){
  64. System.out.print(anInt+"\t");
  65. }
  66. System.out.println();
  67. }
  68. }
  69. }

版权声明:本文为upship原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/upship/p/14467944.html