java——数组

来源:互联网 发布:游戏编程 大学 编辑:程序博客网 时间:2024/06/03 03:50

简介

数组是一种数据结构
声明:一般使用int[] a这种方式,相对于int a[],前者将变量和类型分开了。
初始化:长度可以不使用变量如int[] a=new int[n];,当然了长度为0也是可以的。
赋值:如果不指定,就是类型的默认值,数字型是0,布尔型是false.对象的话就是null。数组创建之后,大小是不能改变的。

遍历

1.使用for each
这种方式的好处就是不需要使用数组的下标

//遍历并打印@Test    public void ssa(){        String[] s= new String[]{"d","d","sd"};          for (String b : s)                 System.out.print(b);    }    //打印结果ddsd

2.传统for循环
(略…)
3.Arrays.toString()
当然,如果只是想看一下数组的内容,可以这样做

 System.out.println( Arrays.toString(s)); // 打印结果[d,d,sd]

拷贝

1.引用的复制

String[] s= new String[]{"d","d","sd"};        String[] s1=s;        s[1]="ss2";        System.out.println(Arrays.toString(s1));

这样做的话,s和s1的引用都将指向同一块内存地址,改变s,s1也将改变,不是真正的复制。

2.使用Arrays.copy()方法

String[] s= new String[]{"d","d","sd"};        String[] s1=Arrays.copyOf(s, s.length);        s[1]="ss2";        System.out.println(Arrays.toString(s1));

copy底层就是根据反射来创建一个新的对象,该方法第一个参数是源数组,第二个是新数组的长度。使用该方法可以用来增加数组的长度。多余部分取默认值
例如

String[] s= new String[]{"d","d","sd"};        String[] s1=Arrays.copyOf(s, 2*s.length);        s[1]="ss2";        System.out.println(s1.length);//打印结果6

3.自己写算法
当然了可以自己实现复制,利用循环遍历,一个一个的赋值到另一个,比较麻烦,也能达到复制的效果

        String[] s= new String[]{"d","d","sd"};        String[] s1=new String[s.length];        for (int i=0;i<s.length;i++) {            s1[i]=s[i];        }

排序

1.Arrays.sort()
该方法对数组内容排序,结果为升序

其他

比较,使用Arrays.equals()方法,若下标相同的元素对应相等,返回true

多维数组

在java中其实就是数组的数组
。多少维就需要嵌套多少个for循环来遍历。比较费劲。
当然了,如果只是想看一下数组的内容,可恶意使用Arrays.deepToString()方法。