数组

概念:

数组可以看成是多个相同类型数据的集合,对这些数据的统一管理。

数组的变量时引用类型,数组本身也是个对象,数组中每个元素相当于该对象的成员变量 数组的元素可以使任何数据类型,包括基本数据类型和引用数据类型。

声明方式:

类型 [ ] 变量名 = new 类型 [长度](规定) 或 类型 变量名 [ ]  = new 类型【长度】

int[ ]   a;double [ ]  d; String [ ]  s; person [ ]  p;

声明数组要用new关键字。

   1,必须声明数组的长度, int[ ] = new int[5];

   2,也可以直接定义数组的内容    int[ ] a = {1,2,3}

   3, 数组的长度一旦被定义,则不可再变。

遍历和初始化(求int数组的和)

  args(命令行参数)

   静态初始化/动态初始化

   基础类型

   引用类型

   二维数组的初始化和定义: int [ ] [ ] aa = new int [3] [ ];

数组的对象都会有一个叫lenth的属性,来记录长度。

访问数组中的一个元素使用索引

   索引从0开始

   int [ ] a = {1,2,3,4,5};

   a[2]  

   main方法中的字符串数组(模拟计算器)

public static void main (String[] args){
   if(args.length ! = 3){
          System.out.println("请输入正确的格式!");
           return;   
     }
    int a  = Integer.parseInt(args[0]);
    int b  = Integer.parseInt(args[2]);
    String s = args[1];
    swirch(s) {
        case"+"  
        System.out.println(a + b );
        case"-"
         System.out.println(a - b );
       case"*"  
        System.out.println(a x b );
        case"/"
         System.out.println(a / b );

      }       
}    

练习500逢3退1

public class Count3Quit {
       public static void main (String[] args){
                boolean[] persons  = new boolearn[500];
                for(int i = 0; i < persons.length; i ++){
                     persons[i] = true;
            }
                      int index = 0; 
                      int count = 0;
                      int len = persons.length;
                      while( len ! = 1){
                      if(person[index]    {
                          count++;
                           if(count == 3 ){
                              persons[index] = false;
                              count = 0;
                              len--;
            }
         }      
                         index++;
                        if(index  == 500){
                           index = 0;
    }
}
                        if(int i = 0 ;i< persons.length; i ++){
                        if(persons[i]){
                         System.out.println(i); 
           }
      }        
}    

}                                            

数组元素初始化

int = 0; 所有整数都是0 ;所有浮点型都是0.0 ; 布尔值都是flase; 所有引用类型都是null;

 

数组排序

     反转排序

  冒泡排序

  

 pubic static void bubblesort(int[] arr){
    int[] arr = {1,3,6,2,0,11,17,14};
     bubbleSort(arr);
    p(arr);
  }
   public static void bubbleSort(int[] arr){
            for(int i = 0; i < arr.length; i++){
                for(int j = 0; j <arr.length-i-1;i++){
                    if(arr[j] > arr[j+1]){
                       int temp = arr[j];
                       arr[j] = arr[j+1];
                       arr[j+1] = temp;
             }        
         }
     }   
}     
      public static void p(int[] arr){
        for(int i = 0; i < arr.length;i++){
        System.out.print(arr[i] + " ");  
     }       
} 

 

  直接选择排序

Arrays工具类

  数组排序 Arrays.sort(arr);快速排序

  填充数组Arrays.fill(arr,5);填充数组

  数组复制Arrays.copyOf(arr,5);如果新数组的长度不如被复制的数组长度长有多少取多少 ,如果新数组的长度比较长,不足的部分用0填充

  数组的范围赋值 Arrays.copyOfRange(); 索引范围包括开始,不包括结束。

  比较两个数组是不是一样 Arrays.equals(int [ ] a, int [ ] b );

  数组查询 binarySearch();二分搜索法 必须先排序。如果有,返回值是该数的索引。 如果没有返回值是该数应该所在的索引加一的相反数

  数组范围查询

posted on 2018-05-12 10:02  王建润  阅读(146)  评论(0编辑  收藏  举报