JAVA基础2(数组)

五、数组
1、定义:存储相同类型的一组数据
  格式:数组类型 []数组名=new 数组类型[数组长度]
  基本要素:标识符、数组元素、元素下标(从0开始)、元素类型
  初始化数组:
  方(1)int []nums=new int[3];
  方(2)int nums[]={1,2,3};
  方(3)int[] nums=new int[]{1,2,3,};
  nums[0]=1;
 nums[1]=2;
  nums[2]=3;
  nums[3]=8; //常见错误:数组下标越界

2、获取数组长度:nums.length
  数组默认值:
  整型byte short int long:0
  浮点型float double:0.0
  字符串String:null
  布尔boolean:fasle
  字符型char:’\u0000’

3、数组的操作
  (1)组遍历
     正向遍历:for(int i=0;i<nums.length;i++){ System.out.println(nums[i]) }
     逆向遍历:for(int i=nums.length-1;i>=0;i–){ System.out.println(nums[i]) }
     增强for循环:for(int temp:nums){ System.out.println(temp) }
  (2)组增删改查
     Scanner input=new Scanner(System.int);
     int []names=new int[5]{};
     int index=-1;
     int add=-1;
     for(int i=0;i<5;i++){
       if(names[i].equals(“王五”)){ //判断是否存在王五
         index=i;
         break;
       }else if(names[i].equals(“null”)){ //判断是否存在空位
         add=i;
         break;
       }
      }
      1>修改
        if(index!=-1){
           names[index]=“田七”;      //王五换成田七
         }else {
           System.out.println("\n未找到王五!");
        }
      2>删除:
        if(index!=-1){
           for(int n=index+1;n<names.length;n++){
             names[n-1]=names[n];
           }
           names[names.length-1]=“null”;
         }else{
           System.out.println("\n不存在李四!");
         }
      3>增加:
        if(add!=-1){
           names[add]=“王五”;
         }else{
           System.out.println("\n数组已满!");
         }

4、冒泡排序:N个数字来排队
  两两相比小靠前
  外层循环控制轮数N-1
  内层循环控制两两相比的次数N-1-I
  下标  0  1   2  3  4
  原始 16  25  9  90  23
  一轮 16  9  25  23  90   比4=5-1-0次
  二轮 9  16  23  25  90   比3=5-1-1次
  三轮 9  16  23  25  90   比2=5-1-2次
  四轮 9  16  23  25  90   比1=5-1-3次

5、Arrays类的应用
 (1)比较两个数组是否相等:boolean flag= Arrays.equals(数组1,数组2);
 (2)升序排序:Arrays.sort(数组名);
 (3)数组转换成字符串:System.out.println(Arrays.toString(数组名));
 (4)填充数组:Arrays.fill(数组名,填充元素值);
 (5)复制数组:int []num3=Arrays.copyOf(数组名,新数组长度);
 (6)根据元素值反查下标(前提是升序):int index=Arrays.binarySearch(数组名,元素值);

6、插入算法
 (1)找到插入位置下标
     int nums[]={1,2,3,4,5};
     int num=input.nextInt();
     int index=nums.length-1;
     for(int i=0;i<nums.length;i++){
       if(nums[i]>num){
         index=i;
         break;
        }
     }
 (2)从下标位置向后覆盖
     for(int j=nums.length-1;j>index;j–){
       nums[j]=nums[j-1];
     }
 (3)直接替换
     nums[index]=num;

7、二维数组:
   int nums[][]={{1,2},{1,2,3},{1,2}};
   int[][] nums=new int[3][5];
  二维数组遍历
   for(int i=0;i<nums.length;i++){
     for(int j=0;j<nums[i].length;j++){
      System.out.print(nums[i][j]+" ");
     }
     System.out.println();
   }

猜你喜欢

转载自blog.csdn.net/weixin_43779785/article/details/84894663
今日推荐