Java SE基础知识:数组

本文详细介绍了Java中数组的定义、初始化及遍历方法,并探讨了如何使用Arrays类进行排序和转换操作,同时给出了二维数组的定义与初始化示例。
1.定义数组: type[] arrayName;不推荐type arrayName[];
  数组是一个引用变量,相当于指针,指向堆内存空间,定义时这个引用变量还未指向有效内存,所以也不存在指定长度之说
2.初始化数组:
  数组必须先初始化才能使用。两种形式:
  静态初始化:arrayName=new type[]{element1,element2,...}
  动态初始化:只指定长度,由系统为每个元素赋初始值,0、false、null
3.遍历数组
foreach循环
for(type variableName : arrayName)
{
   //variableName迭代访问每个数组元素
}
4.Arrays类的类方法
  void sort(type[] a);对数组元素进行排序(从小到大)
  void sort(type[] a,int begin,int end);索引字段元素排序
  String toString(type[] a);将一个数组转换成字符串,多个元素之间 使用逗号和空格分开,再加上中括号
强调一个东西:String toString()方法很常见,因为它是Object类的一个实例方法(非静态方法),通常会被子类重写
Arrays类重写了toString方法全是有参的,无法直接打印Arrays类。由于Object是所有类的父类,因此ArrayTest类的实例也会有一个
toString()无参的方法,用来返回自我描述字符串。打印实例名,实际上是调用了这个实例的toString()方法,这是打印对象的实质。
默认的形式是:类名+@+hasCode
在DataTypeTest.java里提到过包装类的toString方法可以将基本类型转换成字符串
5.二维数组
A.定义二维数组
      语法是:type[] [] arrayName;
      含义是:arrayName这个数组里的每个元素都是type[],即每个元素都是数组的数组,是为二维数组
B.初始化二维数组
  arrayName=new type[length] [x];
      其中length是arrayName的长度,相当于动态初始化了;必须指定x的值,x为元素数组进行动态初始化
  例子:
  int[] [] a=new int[2] [4];(与正常理解恰好相反了)
  含义是:a是一个长度为2的二维数组,它的数组元素是int型数组,每个元素数组的长度为4,可以foreach
  嵌套来遍历这个数组,如上。   
C.实质:“数组的数组”即“引用的数组”
package knowledge_basic;

import java.util.Arrays;

public class ArrayTest {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        int[] a=new int[]{10,4,3,2,5,6,9,8,7,1};
        int[] b=new int[10];
        Arrays.sort(a);
        for(int out:a)
        {
            System.out.print(out+" ");
        }
        System.out.print("\n");
        for(int out:b)
        {
            System.out.print(out+" ");
        }
        System.out.print("\n");
        char[] c=new char[]{'H','e','l','l','o',' ','W','o','r','l','d','!'};
        for(char out:c)
        {
            System.out.print(out+" ");
        }
        System.out.print("\n");
        String s=Arrays.toString(a);
        System.out.println(s);
        System.out.println(new ArrayTest());
        int[] [] arrayName;//定义
        arrayName=new int[3] [4];//初始化
        for(int[] a1:arrayName)
        {
            for(int a2:a1)
            {
                System.out.print(a2+" ");
            }
            System.out.print("\n");
        }
    }
}

1 2 3 4 5 6 7 8 9 10
0 0 0 0 0 0 0 0 0 0
H e l l o W o r l d !
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
knowledge_basic.ArrayTest@15db9742
0 0 0 0
0 0 0 0
0 0 0 0

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值