吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 1235|回复: 1
收起左侧

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

  [复制链接]
LongJL 发表于 2021-7-10 12:23

数组的常用方法和注意事项

public class ArrayOne {
    public static void main(String[] args) {
        int[] array = new int[3]; //动态初始化
        System.out.println(array); //地址值
        System.out.println(array[0]);//0
        System.out.println(array[1]);//0
        System.out.println(array[2]);//0

        //改变数组当中元素的内容
        array[1] = 10;
        array[2] = 20;
        System.out.println(array); //地址值
        System.out.println(array[0]);//0
        System.out.println(array[1]);//10
        System.out.println(array[2]);//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[i]);
            }
        }
    }
    ```

注意事项

越界异常:
如果访问数组元素的时候,索引编号并不存在,那么将会发生数组索引越界异常:
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[8];
            Arrays.fill(array,1)
            for(int i = 0;i<array.length;i++){
                System.out.println(array[i]);// 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);//[10,20,30]
        }
    }
```

数组的基本操作

数组最值:

    public class Array {
        public static void main(String[] args) {
            int[] array = {5 , 15 , 30 , 20 , 10000};
            int max = array[0]
            for(int i = 1;i < array.length;i++ ){
                //如果当前元素,比max更大则换数字
                if(array[i] > max){
                    max = array[i];
                }
            }
        }
    }

数组元素反转:

概念:
对称位置的元素交换

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[mix];
            array[mix] = array[max];
            array[max] = temp;
        }
    }
}

免费评分

参与人数 1吾爱币 +1 热心值 +1 收起 理由
chenyang33207 + 1 + 1 谢谢@Thanks!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

yyb414 发表于 2021-7-10 14:34
努力学习,天天向上
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-26 00:37

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表