LongJL 发表于 2021-7-10 12:23

【自学笔记】 Java基础 - 数组的常用方法和注意事项

# 数组的常用方法和注意事项
```Java
public class ArrayOne {
        public static void main(String[] args) {
                int[] array = new int; //动态初始化
                System.out.println(array); //地址值
      System.out.println(array);//0
      System.out.println(array);//0
      System.out.println(array);//0

      //改变数组当中元素的内容
      array = 10;
      array = 20;
      System.out.println(array); //地址值
      System.out.println(array);//0
      System.out.println(array);//10
      System.out.println(array);//20
        }
}
```
## 遍历数组
        概念:
                说的就是对数组中的每一个元素进行逐一处理。默认的处理方式就是打印。
          ```Java
          public class Array {
                public static void main(String[] args) {
                    int[] array = {1,2,3,4,5};
                    for(int i = 0;i<array.length;i++){
                      System.out.println(array);
                    }
                }
          }
          ```
## 注意事项
越界异常:
        如果访问数组元素的时候,索引编号并不存在,那么将会发生数组索引越界异常:
                ArrayIndexOutOfBoundsException
                原因:索引编号写错了
      解决:修改成为存在的正确索引编号
空指针异常:
      所以的引用类型变量,都可以赋值为一个null值,但是表示其中什么都没有。组必须进行          new初始化才能使用其中的元素如果只是赋值一个null,没有j进行new创建。那么将会发生。空指针异常 NullPointerException
      原因:忘了new
      解决:补上new

## 数组的常用方法
### 获取数组的长度
        public int length()
          格式:
                数组名称.length
                这将会得到一个int数字 这代表数组长度
                数组一旦创建,程序运行期间,长度不可改变

### 填充替换数组
        public static void fill(int[] a, int value)
                参数:
                        a:要进行替换的数组
                        value:要存储数组种所以元素的值
        ```Java
          public class Array {
                public static void main(String[] args) {
                    int[] array = new int;
                    Arrays.fill(array,1)
                    for(int i = 0;i<array.length;i++){
                      System.out.println(array);// 1
                    }
                }
          }
          ```
        public static void fill(int[] a,int form,int to, int value)
               参数:
                        a:要进行替换的数组
                        form:指定填充的第一个索引值(包括)
                        to:直到填充的最好一个索引值(不包括)
                        value:要存储数组种所以元素的值
### 数组查询
        public static int binarySearch(byte[] a,byte key)
                参数:
                        a:要搜索的数组
                        key:要搜索的值
                结果
                        搜索键的索引,如果它包含在数组中; 否则, (-(插入点)或 - 1) 。如果阵列中的所有元素都小于指定键的第一元件比所述键时,或a.length的索引: 插入点被定义为将键插入到阵列的点。 请注意,这确保当且仅当找到该键时返回值将为> = 0。
                注意:使用二进制搜索算法搜索指定值的指定字节数组。 在进行此调用之前,数组必须按照sort(byte[])方法进行排序。 如果没有排序,结果是未定义的。 如果数组包含具有指定值的多个元素,则不能保证将找到哪个元素。
                ```Java
          public class Array {
                public static void main(String[] args) {
                    int[] array = new int[]{1,5,4,3,2};
                    Arrays.sort(array)
                    int index = Arrays.binarySearch(array,4)
                    System.out.println(index);// 3
                }
          }
          ```
### 排序
        public static void sort(数组):按照默认升序对数组的元素进行排序。
        备注:
                1.如果时数组,sort默认按照升序从小到大
                2.如果时字符串,sort默认按照字母升序
                3.如果时自定义类型,那么这个自定义的类需要有Comparable或者Comparator接口的支持。
        ```Java
        public class Demo1Arrays {
                public static void main(String[] args) {
                    //排序
                    int array1 = {2,1,4,8,6,7};
                    Arrays.sort(array1);
                    System.out.println(Arrays.toString(array1));


                String[] array2 = {"aaa","bbb","ccc"};
                Arrays.sort(array2);
                System.out.println(Arrays.toString(array2));
            }
      }
    ```
### 转字符串
        public static String toString(数组)
                将参数数组变成字符串(按照默认格式:[元素一,元素二,....])
        ```Java
        public class Demo1Arrays {
                public static void main(String[] args) {
                    int[] intArrays = {10,20,30};
                    //将int数组按照默认格式变成字符串
                    String intStr = Arrays.toString(intArrays);
                    System.out.println(intStr);//
                }
          }
        ```
## 数组的基本操作
### 数组最值:
```Java
    public class Array {
      public static void main(String[] args) {
            int[] array = {5 , 15 , 30 , 20 , 10000};
            int max = array
            for(int i = 1;i < array.length;i++ ){
                //如果当前元素,比max更大则换数字
                if(array > max){
                  max = array;
                }
            }
      }
    }
```
### 数组元素反转:
概念:
        对称位置的元素交换
```Java
public class ArrayReverse {
        public static void main(String[] args) {
                int[] array = {10 , 20 , 30 , 40 , 50};
                for(int min = 0, max = array.length-1;min < max ; min++ , max--) {
                        int temp = array;
            array = array;
            array = temp;
                }
        }
}
```

yyb414 发表于 2021-7-10 14:34

努力学习,天天向上{:1_901:}
页: [1]
查看完整版本: 【自学笔记】 Java基础 - 数组的常用方法和注意事项