Array常用操作

Array常用操作

  • 将数组a的一部分复制到数组b中,java.lang.System的方法arraycopy

    • System.arraycopy(Object src,int srcPos,Object dest,int destPos,int length);
  • 将数组具体内容输出,直接syso数组变量会得到[Ltype;@xxxx的结果,要输出具体元素可以使用Arrays.toString()方法

  • 复制一个新的数组,Arrays.copyOf(T[] original, int newLength),newLength小于原数组截断,长于原数组补null或0

  • list转数组,Object[] toArray()与 T[] toArray(T[] a)方法,两个方法有一定区别

    • Object[] toArray():返回一个新的Object[]数组,其实就是把list内部的数组,如ArrayList的elementData[]复制出来
    • T[] toArray(T[] a):若a的长度小于list长度,则新建并复制一个数组再进行类型转换,若a的长度大等于list大小,则在a上直接复制,a长度大于list的size,a[zize]会被置为null,doc上说是为了识别list的长度(原list元素都是非空的情况下),这种情况比较少见,一般常见的用法是构造一个与原来list相同长度的数组:E[] arr = list.toArray(new E[list.size()])

      public static void main(String[] args) 
      {
          String[] src = {"1","2","3","4","5"};
          String[] dst = {"a","b","c","d"};
          int[] nums = {1,2,3,4,5};
      
          System.arraycopy(src,1,dst,1,2);    //dst被修改
          System.out.println(Arrays.toString(dst));   //[a, 2, 3, d]
          System.out.println(dst.getClass()); //class [Ljava.lang.String;
      
          System.out.println("a".getClass()); //class java.lang.String
      
          System.out.println(Arrays.toString(Arrays.copyOf(nums, 7)));    //[1, 2, 3, 4, 5, 0, 0]
      
          ArrayList<String> list = Lists.newArrayList("1","2","3","4","5");
          System.out.println(Arrays.toString(list.toArray(new String[list.size()]))); //[1, 2, 3, 4, 5]
      
          String[] a = {"a","b","c","d","e","f","g"};
          System.out.println(Arrays.toString(list.toArray(a)));   //[1, 2, 3, 4, 5, null, g]
      
      }
      
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值