如何将List <integer>转换为List <string>?

时间:2018-10-13 06:31:28

标签: java

public String largestNumber(final List<Integer> A) {

}

我想继续此方法,但列表中的数据应为字符串。 我不知道如何转换。

3 个答案:

答案 0 :(得分:0)

将整数转换为String的逻辑是什么。解决方案应该是这样的。

ints.stream().map(String::valueOf).collect(Collectors.toList());

答案 1 :(得分:0)

其他人提供了有关如何将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

答案 2 :(得分:-1)

  • List<Integer>转换为Stream
  • 将每个值从Integer映射到String
  • 将流收集为List<String>
list.stream().map(Object::toString).collect(Collectors.toList())