public String largestNumber(final List<Integer> A) {
}
我想继续这个方法,但列表中的数据应该是字符串。我不知道如何转换它。
将整数转换为String
的逻辑是什么?解决方案应该是这样的。
ints.stream().map(String::valueOf).collect(Collectors.toList());
其他人提供了如何将List<Integer>
转换为List<String>
的指示。但是,考虑到方法的名称,我认为目标是找到指定的List<Integer>
中的最大数字。根据方法名称,我认为它应该作为int
而不是String
返回。尽管如此,实际找到最大值并将其作为String
返回的一种可能方法是:
public String largestNumber(final List<Integer> myNumbers)
throws NoSuchElementException
{
if (myNumbers == null || myNumbers.isEmpty()) {
// could return an empty String instead, but then the
// calling method might need to check for an empty String
throw new IllegalArgumentException("No numbers provided");
}
// use the stream to find the largest (max) value
OptionalInt possMax = myNumbers.stream().mapToInt(Integer::intValue).max();
return String.valueOf(possMax.getAsInt());
}
另请注意,如果没有最大数字要传播,我允许使用NoSuchElementException
。检查存在然后返回一个空的String
可以提供,但返回一个空的String
似乎调用代码然后可能需要检查这样的条件。
List<Integer> vals = List.of(1, 2, 3, 4, 5, 3, 2, 1);
String l = largestNumber(vals);
System.out.println(l);
输出:
5
List<Integer>
中的Stream
Integer
映射到String
List<String>
list.stream().map(Object::toString).collect(Collectors.toList())