Java 【数组】

一.数组的基本使用

public class demo{
    public static void main(String[] args){
        //使用数组四部走
        int[] a;  //声明数组
        a = new int[5]; //分配空间
        for(int i=0;i<5;i++){
            a[i] = i;
        }
        a[0] = a[0]*10;  //处理数据
        for(int i=0;i<5;i++){
          System.out.println(a[i]);    
        }
        
    }
}

 1.四种写数组方法

public class demo{
    public static void main(String[] args){
        //第一种
        int arr1[];  //声明
        arr1 = new int[5]; //分配空间
        arr1[0] = 1;   //赋值

        //第二种
        int arr2[] = new int[5];  //声明并分配空间
        arr2[0] = 32;   //对数据赋值

        //第三种
        int arr3[] = {8,2,3,4};  //声明、赋值、分配

        //第四种
        int arr4[] = new int[]{2,5,8,7};  //声明、赋值、分配

      System.out.println(arr1[0]);
      System.out.println(arr2[0]);
      System.out.println(arr3[0]);
      System.out.println(arr4[0]);
 
        
    }
}

 

二.数组的排序

import java.util.Arrays;  //Arrays的sort()排序
import java.util.Scanner;
public class demo1{
    public static void main(String[] args){
         
         Scanner data = new Scanner(System.in);

         int[] arr1 = new int[10];
         String[] arr2 = new String[7];
         
         //对数字进行排序
         for(int i=0;i<arr1.length;i++)
         {
              System.out.println("请输入第"+ i +"学生成绩");
              arr1[i] = data.nextInt();  //数值赋值
         }

          Arrays.sort(arr1);  //对数组排序
         
        for(int i=0;i<arr1.length;i++)
         {
              System.out.println(arr1[i]);
            
         }

         //对字母进行排序
         for(int i=0;i<arr2.length;i++)
         {
              System.out.println("请输入字母"+ i);
              arr2[i] = data.next();  //字符赋值
         }

          Arrays.sort(arr2);  //对数组排序[逆序]
         
        for(int i=arr2.length-1;i>=0;i--)
         {
              System.out.println(arr2[i]);
            
         }
    }
}

 三.数组的复制

import java.util.Scanner;
public class demo{
    public static void main(String[] args){

        //数组的复制
        int arrA[] = new int[]{2,3,4,5,6,7};
        int [] arrB = new int[arrA.length];
        for(int i=0;i<arrA.length;i++){
            arrB[i] = arrA[i];
        }
        for(int i=0;i<arrB.length;i++){

            System.out.println(arrB[i]);

        }


    }
}

 

四.数组的查找算法

import java.util.Scanner;
public class demo{
    public static void main(String[] args){

        //数组查找算法
        String arr[] ={"张三","里斯","网二","码字","庇护"};
        Scanner data = new Scanner(System.in);
        System.out.println("请输入查找的学生的姓名:");
        String name = data.next();  //输入查找值
       
        boolean flag = false;   //查找标志位
        for(int i=0;i<arr.length;i++){  //循环数组查找
            if(name.equals(arr[i])){ //如果输入值等于数组值
                flag=true;
                break;
            }
        }
            
            if(flag == true){
                System.out.println("找到了!");
            }
            else{
                System.out.println("没找到!");
            }
   
    }
}

 

五.数组插入算法

import java.util.Scanner;
public class demo{
    public static void main(String[] args){
        //数组插入算法
        Scanner data = new Scanner(System.in);
        int[] arr = {2,3,4,5,6,7};  //长度为6
        System.out.println("请输入你要插入的数值:");

        int num=data.nextInt(); //获取输入的数值赋值给num

        arr[arr.length-1] = num;  //把num插入到最后

        for(int i=arr.length-1;i>0;i--){ //从后到前遍历
            if(arr[i]<arr[i-1]){ //如果前一个大于后一个
                int t = arr[i];   //交换前后
                arr[i] = arr[i-1];
                arr[i-1] = t;
            }
            else{   //否则跳出循环
                break;
            }

        }

        for(int i=0;i<arr.length;i++){
            System.out.println(arr[i]);

        }

    }
}

 

六.数组冒泡排序

 

public class demo{
    public static void main(String[] args){
        //数组冒泡排序
        int arr[] = new int[]{12,5,18,10,11,17};  //长度6
       for(int j=0;j<=arr.length-1;j++){  //循环
            for(int i=0;i<arr.length-1;i++){//主要将大的向后移动
                if(arr[i]>arr[i+1]){

                    int t = arr[i];
                    arr[i] = arr[i+1];
                    arr[i+1] = t;

                }
            }
        }
        for(int i=0;i<arr.length;i++){ //输出
            
            System.out.println(arr[i]);

        }
        

    }
}

 

七.选择排序原理

 

public class demo{
    public static void main(String[] args){
     
        //选择排序 (打擂台)
        int []arr = new int[]{9,8,7,6,5,4,3,2,1};
        int replace = 0;
        int bj = 0;
         for(int i=0;i<arr.length-1;i++){ //循环次数
             for(int j=i+1;j<arr.length;j++){//每次循环比较的个数
               if(arr[i] > arr[j]){
                     int t = arr[i];
                     arr[i] = arr[j];
                     arr[j] = t;
                     replace++;  //交换次数
               }
              //比较次数
               bj++;
             }
             
         }
         for(int i=0;i<arr.length;i++){
               
             System.out.println(arr[i]);
         }
       
        System.out.println("交换次数:" + replace);
        System.out.println("比较次数:" + bj);

    }
}

 

posted @ 2020-03-03 19:03  Crown-V  阅读(160)  评论(0编辑  收藏  举报