簡體   English   中英

Java將對象類列表轉換為字符串[]

[英]Java Convert List of Object Class to String[]

我有一個名為RoomClassRes的類,它具有getter&setter id,名稱等,在主類中,我聲明String [] = {}。

有了這段代碼,我使用了兩個變量

List<RoomClassRes> roomClassResString[] roomClassList

我想用List<RoomClassRes>所有name填充String[]

這對我不起作用

@Override
        public void onResponse(Call<List<RoomClassRes>> call, Response<List<RoomClassRes>> response) {
            List<RoomClassRes> roomClassRes = response.body();

            // 1
            Object[] roomClassObj = roomClassRes.toArray();
            for (int i = 0; i < roomClassObj.length; i++){
                RoomClassRes roomClass = (RoomClassRes)roomClassObj[i];
                roomClassList[i] = roomClass.getName();
            }

            // 2
            int i = 0;
            for(RoomClassRes rc : roomClassRes){
                roomClassList[i] = rc.getName();
                i++;
            }

        }

什么都沒有。

使用RoomClassRes 。在這里,您可以使用流API,首先獲取RoomClassRes的流,然后將每個房間映射到其名稱,然后轉換為數組。

public String[] toStringArray(List<RoomClassRes> rooms) {
    return rooms.stream()
            .map(RoomClassRes::getName)
            .toArray(String[]::new);
}

使用Java7。首先創建具有列表大小的數組,然后填充數組並返回。

public String[] toStringArray(List<RoomClassRes> rooms) {
    String[] result = new String[rooms.size()];
    for (int index = 0; index < rooms.size(); index++)
        result[index] = rooms.get(index).getName();
    return result;
}

請注意,您不能像String[] result = {}那樣聲明數組,因為那樣會創建一個空數組,您可以像上面的函數中那樣提供新的數組大小。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM