Java学习(3)_数组

数组的创建

一个数组变量实际上存储的是数组的引用,严格地讲,一个数组变量和一个数组是不同的,可陈述为:“myList是一个含有10个double类型元素的数组的引用变量”。

  1. 一维数组
    (1)elementType[] arrayName = new elementType[arraySize];
    (2) double [] myList = {1.9, 2.0, 3.4, 4.5};

  2. 二维数组
    int [][] =new int[5][6];

  3. “动态数组”
    单独介绍

数组的复制

Java中可以使用赋值语句赋值基本数据类型的变量,但是不能复制数组。将一个数组变量赋值给另一个数组变量,实际上只是将其引用复制,是两个变量指向相同的内存地址。

复制数组有三种方法:
1. 使用循环语句逐个复制数组元素;

int[] sourceArray = {1, 2, 3, 4, 5};
int[] targetArray = new int[sourceArray.length];
for(int i = 0; i < sourceArray.length; i++) {
    targetArray[i] = sourceArray[i];
}
  1. 使用 java.lang.System 类的 arraycopy 方法复制数组;

    arraycopy(sourceArray, src_pos, targetArray, tar_pos, length);

    两个pos指起始位置,复制length个元素。
    注意:arraycopy 方法违反了Java命名规范,正常应为驼峰。

可变长参数列表

可以把类型相同但是个数可变的参数传递给方法,方法中的参数声明如下:

typeName...parameterName

在方法声明中,指定类型后紧跟着省略号。只能给方法中指定一个变长参数,同时该参数必须是最后一个参数,任何常规参数必须在他之前。
Java将可变长参数当成数组对待,可以将一个数组或可变长的参数传递给方法。举例如下:

public class VarArgs {
    public static void main(String[] args) {
        Max(13, 5, 9, 2, 64, 1, 59);
        Max(new int[] {13, 5, 9, 2, 64, 1, 59});
    }
    public static void Max(int...nums) {
        if(nums.length == 0) {
            System.out.println("No aegument passed");
            return;
        }
        int result = nums[0];
        for(int i = 0; i < nums.length; i++) {
            if(nums[i] > result) {
                result = nums[i];
            }
        }
        System.out.println(result);
    }
}

Arrays类

为了实现数组的排序和查找、数组的比较和对数组填充元素,java.util.Arrays类包含各种静态方法,这些方法对所有基本类型有重载方法。

  1. 排序: sort()方法
int[] nums = {13, 5, 9, 2, 64, 1, 59};
java.util.Arrays.sort(nums);

char[] chars = {'a', 'F', 'A', '4', 'D', '*', 'b' ,'9', 'z'};
java.util.Arrays.sort(chars, 2, 5);//将第2位到第5位排序
  1. 二分查找:binarySearch()方法
    数组必须提前按照增序排列好,否则返回负数。
char[] chars = {'a', 'b', 'd'};
java.util.Arrays.binarySearch(chars, 'a');
  1. 检查数组是否相等:equals()方法
int[] nums1 = {13, 5, 9, 2, 64, 1, 59};
int[] nums2 = {13, 5, 9, 2, 64, 1, 59};
bool isEqual = java.util.Arrays.equals(nums1, nums2);
  1. 填充数组:fill()方法
char[] chars = {'a', 'F', 'A', '4', 'D', '*', 'b' ,'9', 'z'};
java.util.Arrays.fill(list, 'c');
java.util.Arrays.fill(list, 1, 5, 'c');//将第1位到第5位填充为‘c’字符
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值