如何将对象 arrayList 解析为字符串数组?

时间:2021-07-19 06:55:05

标签: java arrays arraylist

我有一个包含对象的 arrayList。 我需要将它解析为一个数组,其中所有元素都是字符串。

有什么想法吗?

2 个答案:

答案 0 :(得分:2)

假设列表中的对象正确覆盖了方法 toString,最好使用方法 Objects::toString,它允许将对象安全地转换为字符串。

  1. 使用 for-each 循环:
public static String[] convert(List<MyObject> list) {
    String[] result = new String[list.size()];

    int i = 0;
    for (MyObject obj : list) {
        result[i++] = Objects.toString(obj);
    }

    return result;
}
  1. 使用流 API
public static String[] convert(List<MyObject> list) {
    return list.stream()
               .map(Objects::toString)
               .toArray(String[]::new);
}

答案 1 :(得分:1)

首先,您应该覆盖要转换为 String 的类的 toString() 方法,以生成描述性字符串。 (可以使用@Data 或@ToString lombok 注释)

其次,您可以使用它从列表传递到数组

String[] array = objectList.stream().map(element -> element.toString()).toArray(String[]::new);
相关问题