java中对数组的操作

来源:互联网 发布:mac磁盘权限修复 编辑:程序博客网 时间:2024/05/01 10:59

一.数组:

1>打印数组中的元素:

不用循环,直接用Arrays.toString(),转化后字符串的长度为:数组长度a  a+(a-1)*2(逗号和空格)+2(中括号)

Integer[] intArr ={1,2,3}; //以下输出结果为:[1, 2, 3]length:9 System.out.println(Arrays.toString(intArr)+"length:"+Arrays.toString(intArr).length()); //以下输出结果为:{1,2,3}length:7 System.out.println(ArrayUtils.toString(intArr)+"length:"+ArrayUtils.toString(intArr).length());

2>将数组转化成集合:

Arrays.asList(数组),这样转化成的集合是ArrayList,但这个类是Arrays内部的一个私有类,而非java.util.ArrayList类,不能对这个集合进行操作,因为这个类的大小是固定的,所以需要转化成java.util.ArrayList类这样就能对集合进行操作了。
所以需要这样写:

ArrayList<String> list = new ArrayList<String>(Arrays.asList(数组));

注:数组如果是基本的数据类型转化成集合后,集合的大小为1,每个元素为数组类型

Eg: int[] a = {1,2,3,4}  .该数组转化成ArrayList<int[]> ;类型

数组如果是对象类型转化成集合后,集合的大小和数组的长度一致,元素为数组中每个元素eg:Integer[] a ={1,2,3,4}该数组转化成ArrayList<Integer>类型。

3>判断数组中是否包含指定的元素

用上述2》中将数组转化成集合,然后集合的contains方法来判断(注:对象类型)

4>将两个数组合并成一个数组

<span style="color:#333333;"><span style="white-space:pre"></span> int[] a ={1,2,3}; int[] b ={4,5,6}; System.out.println(Arrays.toString(ArrayUtils.addAll(a, b))); Integer[] c ={1,2,3}; Integer[] d ={4,5,6}; System.out.println(Arrays.toString(ArrayUtils.addAll(c, d)));</span>
输出结果完全相同,不区分基本数据类型还是封装类型

5>将数组后面追加元素

       ArrayUtils.add(数组a6);

6》将数组以想要的符号分隔开连接成一个字符串

   StringUtils.join(数组,分隔符),

   注:数组必须为对象类型,字符串的长度为:数组长度+(数组长度-1)*分隔符的长度

7》删除数组里面的元素:

   

int[] a ={1,2,3};int[] b =ArrayUtils.removeElement(a, 2);//删除数组中指定元素的值System.out.println(Arrays.toString(a));//[1, 2, 3]System.out.println(Arrays.toString(b));//[1, 3]

ArrayUtils.removeElement(数组,删除元素的值), 该方法返回新的数组,不会改动原数组的值

8》判断两个数组是否相等Arrays.equals(a,b)

用对象的equals方法即使内容相同,两个元素也是不等的 

注:数组并没有重写object的equals 方法所以比较是地址而非内容

应该用Arrays.equals(a,b) true  a.equals(b) false





0 0