zoukankan      html  css  js  c++  java
  • Java基础(四) Object 数组转成 String 数组

    Java有个问题就是toArray()方法是Object[],所以总结了几种Object数组转成 String 数组的方法:

    1、System.arraycopy把一个数组中某一段字节数据放到另一个数组中

    //src:源数组;srcPos:源数组要复制的起始位置;dest:目的数组;destPos:目的数组放置的起始位置;length:复制的长度.
    public static void arraycopy(Object src, int srcPos, Object dest, int destPos, int length)

    Object[] src = { "A", "B", "C" };

    String[] dest = new String[src.length];
    System.arraycopy(src, 0, dest, 0, src.length);


    2、Arrays.copyOf
    //第一个参数表示源数组,第二个表示复制的长度,最后一个参数是指定类型
    public static <T,U> T[] copyOf(U[] original, int newLength, Class<? extends T[]> newType)
    //重载方法,同类型
    public static <T> T[] copyOf(T[] original, int newLength)
    Object[] objectArray = { "A", "B", "C" };
    String[] stringArray = Arrays.copyOf(objectArray,objectArray.length, String[].class);
    Arrays.copyOf()不仅仅只是拷贝数组中的元素,在拷贝元素时,会创建一个新的数组对象。

    而System.arrayCopy只拷贝已经存在数组元素。如果我们看过Arrays.copyOf()的源码就会知道,该方法的底层还是调用了System.arrayCopyOf()方法。

    3、Arrays.asList
    这里我们首先将对象数组转换为对象列表,然后使用toArray(T[])方法将列表转储到新分配的String数组中,具体使用参考使用指南

    Object[] objectArray = { "A", "B", "C" };
    String stringArray[] = Arrays.asList(objectArray).toArray(new String[0]);
    //.toArray(new String[objectArray.length]);


    4、Java8中Arrays.stream
    在Java 8中,我们可以使用Stream API轻松地将对象数组转换为字符串数组。我们的想法是首先将指走的对象数组 转换为顺序Stream,然后使用toArray()方法将流的元素累积到新的字符串数组中。

    Object[] objectArray = { "A", "B", "C" };
    String stringArray[] = Arrays.stream(objectArray).toArray(String[]::new);

    原文链接:https://blog.csdn.net/qq_35988274/article/details/96314818

  • 相关阅读:
    s s r 多用户 简单配置
    iptables vsftp timeout
    透明控件的通用解决方案
    一个带有可选自定义框架的透明对话框类
    把你的框架窗口一个影子
    WinForms形成皮肤
    WPF加载启动画面
    酷,半透明和形状对话框与标准的控制Windows 2000及以上
    在MFC应用程序中创建web风格的GUI
    画在WinForms控制
  • 原文地址:https://www.cnblogs.com/lwh-12345/p/12878327.html
Copyright © 2011-2022 走看看