java - 使用 Guava 函数将 List<List<String>> 转换为 List<Integer>

标签 java guava

如何使用 Guava 的函数将下面的一个列表列表字符串值 ( List<List<String>> ) 转换为一个整数列表 ( List<Integer> )?

List<String> list1 = ImmutableList.of("1", "2");
List<String> list2 = ImmutableList.of("3", "4");
List<String> list3 = ImmutableList.of("5", "6");
List<List<String>> lists = ImmutableList.of(list1, list2, list3);

这是我会做的,而不是使用 foreach:

`List<Integer> ints = new ArrayList<Integer>();
  for (List<String> list : lists) {
   for (String string : list) {
    Integer integer = Integer.valueOf(string);
    ints.add(integer);
    }
 }`

最佳答案

public final class StringToIntegerAdapter implements Function<String, Integer> {

    public static final StringToIntegerAdapter INSTANCE = new StringToIntegerAdapter();

    /** Private constructor forces everyone to use the singleton. */
    private StringToIntegerAdapter() {
    }

    @Override
    @Nullable
    public Integer apply(@Nullable final String str) {
        if (str == null) {
            return null;
        } else {
            return Integer.valueOf(str);
        }
    }
}

一旦你有了它,你就可以在一行中将你的字符串列表转换成一个整数列表:

List<String> stringList = getMyStrings();
List<Integer> intList = Lists.transform(stringList, StringToIntegerAdapter.INSTANCE);

关于java - 使用 Guava 函数将 List<List<String>> 转换为 List<Integer>,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19172446/

相关文章:

java - Jtextpane 复制彩色文本并粘贴

java - IDEA中的guava源代码有错误,怎么回事

java - 在有限大小的 MAP 中添加和删除

java - GZIPInputStream 最后填充零?

java - Java 中不可修改的 NavigableSet/NavigableMap?

java - 如何使用 Avro 在 Spring Kafka 1.3 中移动过去不可反序列化的消息

Java无法创建新进程: too many open file error

java - ArrayListMultimap 与 LinkedListMultimap 有何不同?

java - 如何在 spring boot 中发送 400、401、405、403 和 500 错误的自定义响应?

Java HashMap ,其中一个的键作为另一个的值