2021-03-02

java 数组详解

什么是数组

数组的声明和创建

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

三种初始化及内存分析

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

下标越界及小结

数组的使用

``

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

二维数组

Arrays类详解

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

冒泡排序

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

稀疏数组

import java.util.Arrays;public class ArrayDemo06 { public static void main(String[] args) {  //1.创建一个二维数组 11*11 0:没有棋子 1:黑棋 2:白棋  int [][]array1=new int [11][11];  array1[1][2]=1;  array1[2][3]=2;  System.out.println("原始数组:");  //输出原始的数组  for (int[]ints:array1){   for (int anInt:ints){    System.out.print(anInt+"\t");   }   System.out.println();  }  //转换为稀疏数组  //获取有效值的个数  int sum=0;  for (int i=0;i<11;i++){   for (int j = 0; j < 11; j++) {    if (array1[i][j]!=0){     sum++;    }   }  }  //2. 创建一个稀疏数组  int[][]array2=new int[sum+1][3];  array2[0][0]=11;  array2[0][1]=11;  array2[0][2]=sum;  //遍历二维数组,将非零的值,存放到稀疏数组中  int count=0;  for (int i=0;i<array1.length;i++){   for (int j = 0; j < array1[i].length; j++) {    if (array1[i][j]!=0){     count++;     array2[count][0]=i;     array2[count][1]=j;     array2[count][2]=array1[i][j];    }   }  }  //输出稀疏数组  System.out.println("稀疏数组:");  for (int[]ints:array2){   for (int anInt:ints){    System.out.print(anInt+"\t");   }   System.out.println();  }  //还原稀疏数组  //1.读取稀疏数组  int[][]array3=new int[array2[0][0]][array2[0][1]];  //2.给其中的元素还原它的值  for (int i = 0; i < array3.length; i++) {   Arrays.fill(array3[i],0);  }  for (int i = 1; i < array2.length; i++) {   array3[array2[i][0]][array2[i][1]]=array2[i][2];  }  System.out.println("还原稀疏数组:");  for (int[]ints:array3){   for (int anInt:ints){    System.out.print(anInt+"\t");   }   System.out.println();  } }}








原文转载:http://www.shaoqun.com/a/598604.html

跨境电商:https://www.ikjzd.com/

华翰物流:https://www.ikjzd.com/w/1799

特许金融分析师:https://www.ikjzd.com/w/1396


什么是数组数组的声明和创建publicclassArrayDemo01{publicstaticvoidmain(String[]args){int[]nums;//1.定义nums=newint[10];//2.创建一个数组//3.给数组元素赋值nums[0]=1;//获取数组长度arrays.lengthSystem.out.println(nums.length);}}三种初始化及内存分析p
折扣网:https://www.ikjzd.com/w/74
出口易:https://www.ikjzd.com/w/1317
primc:https://www.ikjzd.com/w/129
8天之后,亚马逊海卖助手将关停,代替工具用哪个?(工具二):https://www.ikjzd.com/home/7241
Shopee平台展现逻辑,免费获取流量的方法!:https://www.ikjzd.com/home/102829
特朗普的"自残式"要价:杀敌一千,自损一千!:https://www.ikjzd.com/home/93701

No comments:

Post a Comment