如何使用 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/