java数组操作

  • Post author:
  • Post category:java

java数组操作

main方法中的参数数组String[] args

package indi.exer.yuluo.collection.arrays;

import java.util.Arrays;

/**
 * @author: yuluo
 * @createTime: 2022/2/3 16:56
 * @File : test1.java
 * @Software : IntelliJ IDEA
 * @Description:
 *
 *          jvm在调用main方法的时候会自动传一个String数组的参数过来   输出为空,长度为0  []
 *          String[] args 是留给用户的。用户可以在控制台上输入参数,这个参数会被自动转换为这个"String[] args"
 *          模拟一个系统,要用户输入相应的参数才能使用系统,则可以输入到String[] args数组中
 *          参数的设置方法在 Edit Configuration -> Build and run -> Program arguments
 */

public class test1 {

    public static void main(String[] args) {
        // main方法的String[] args 参数的作用
        /*System.out.println(Arrays.toString(args));*/

        // 假设用户名是admin,密码是123 要求用户输入正确的密码才能继续使用
        String username = args[0];
        String password = args[1];

        if (username.equals("admin") && password.equals("123")) {
            System.out.println("登陆成功,欢迎 [" + username +"]回来");
            System.out.println("继续使用此系统……");
        } else {
            System.out.println("输入的用户名或密码不正确,请重新输入");
        }

        // 输出args数组的内容和长度
        System.out.println("args数组的长度:" + args.length + "args数组的内容:" + Arrays.toString(args));

    }

}

数组的扩容和拷贝

package indi.exer.yuluo.collection.arrays;

/**
 * @author: yuluo
 * @createTime: 2022/2/3 20:31
 * @File : test2.java
 * @Software : IntelliJ IDEA
 * @Description: 数组的扩容和拷贝
 *
 *      数组的扩容:数组的扩容要把原先的数据拷贝到新的数组当中,效率底下,在编程过程中不建议使用
 *
 */

public class test2 {

    public static void main(String[] args) {

        // 拷贝源
        int[] src = {1, 2, 3, 4, 5};

        // 拷贝目标
        int[] array = new int[10];

        // 拷贝方法
        /**
         *     public static native void arraycopy(Object src,  int  srcPos,
         *                                         Object dest, int destPos,
         *                                         int length);
         *     底层采用c++实现,有5个参数
         *     分别是 原数组 原数组的起始位置 目标数组 从目标数组的某个位置开始插入 插入元素的长度
         */
        System.arraycopy(src, 1, array, 4, 3);   // 预估输出结果 0 0 0 0 2 3 4 0 0 0

        for (int i = 0; i < array.length; i++) {
            System.out.print(array[i] + "\t");
        }

    }

}

Array的常用方法

使用了apache的commons lang3工具类

package indi.exer.yuluo.collection.arrays;

import com.sun.deploy.util.ArrayUtil;
import org.apache.commons.lang3.ArrayUtils;

import java.util.ArrayList;
import java.util.Arrays;

/**
 * @author: yuluo
 * @createTime: 2022/2/4 14:33
 * @File: test3.java
 * @Software: IntelliJ IDEA
 * @Description: Arrays工具类的常用方法
 */

public class test3 {

    public static void main(String[] args) {

        // 动态初始化
        int[] arrays = new int[10];

        int[] array = {1, 4, 6, 3, 8, 2, 10, 19};
        int[] array1 = {20, 23, 28};

        // sort排序方法
        Arrays.sort(array);

        // Arrays的toString输出数组
        System.out.println(Arrays.toString(array));

        // 根据数组创建Arraylist
        String[] stringArray = {"yuluo", "huakai"};
        ArrayList<String> str = new ArrayList<>(Arrays.asList(stringArray));
        /*for (String s : str) {
            System.out.println("s = " + s);
        }*/
        str.forEach(System.out::println);

        // 检查数组是否包含某个值
        System.out.println(Arrays.asList(stringArray).contains("yuluo"));

        //将字符串数组转换为字符串
        String s = ArrayUtil.arrayToString(stringArray);
        System.out.println(s);

        // 数组合并 借助apache的工具库 commons lang3
        int[] ints = ArrayUtils.addAll(array, array1);
        for (int i = 0; i < ints.length; i++) {
            System.out.print(ints[i] + "\t");
        }

        // 数组元素的反转
        ArrayUtils.reverse(stringArray);
        for (int i = 0; i < stringArray.length; i++) {
            System.out.println("stringArray[i] = " + stringArray[i]);
        }

    }

}

版权声明:本文为qq_52397471原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。