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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM