Java学习(3)_数组

来源:互联网 发布:网站流量统计java代码 编辑:程序博客网 时间:2024/06/07 22:48

数组的创建

一个数组变量实际上存储的是数组的引用,严格地讲,一个数组变量和一个数组是不同的,可陈述为:“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’字符
原创粉丝点击