当前位置: 首页 > 面试题库 >

使用Java 8中的功能,转换列表的所有值的最简洁方法是什么?[重复]

焦学海
2023-03-14
问题内容

使用Java 8的新功能,转换a的所有值的最简洁方法是List<String>什么?

鉴于这种:

List<String> words = Arrays.asList("Apple", "Ananas", "Mango", "Banana", "Beer");

我目前正在这样做:

for (int n = 0; n < words.size(); n++) {
    words.set(n, words.get(n).toUpperCase());
}

Java 8中新的Lambda,Collections和Streams API如何提供帮助:

  1. 就地转换值(不创建新列表)

  2. 将值转换为新的结果列表。


问题答案:

这是我想出的:

给定列表:

List<String> keywords = Arrays.asList("Apple", "Ananas", "Mango", "Banana", "Beer");

(1)就地改造

也许我很想念它,似乎没有一种“应用”或“计算”方法需要lambda作为List。因此,这与旧Java相同。我想不出Java 8的更简洁或有效的方法。

for (int n = 0; n < keywords.size(); n++) {
    keywords.set(n, keywords.get(n).toUpperCase());
}

尽管有这种方法比for(..)循环更好:

IntStream.range(0,keywords.size())
    .forEach( i -> keywords.set(i, keywords.get(i).toUpperCase()));

(2)转换并创建新列表

List<String> changed = keywords.stream()
    .map( it -> it.toUpperCase() ).collect(Collectors.toList());


 类似资料:
  • 问题内容: 在Python中将list with转换为list with的最简单方法是什么?例如,我们必须转换为。当然,我们可以使用循环,但这太简单了。 问题答案: Python 2.x: Python 3.x(在3.x中,返回迭代器,而不是在2.x中的列表): 资料:2.6,3.1

  • 问题内容: 假设我有一大堆值aa bb cc dd ee ff gg等,我需要在春季作为构造函数传递 如果我需要配置为字符串数组,那么在春季很容易,因为我们可以将值指定为以逗号分隔,例如aa,bb,cc等。 如果我需要配置为列表,则需要执行以下操作 当值的数量增加时,它占据了巨大的界限,并且看起来很丑陋。 可以请一些人帮我如何将大值作为字符串列表传递给构造函数吗? 问题答案: 值是否从属性文件传递

  • 问题内容: 如果您具有布尔变量: 我可以用if / else子句得到相反的结果: 有更简洁的方法吗? 问题答案: 只是用逻辑运算符不分配就像你会在你的条件语句来实现(,,…)。您已经在使用布尔值,因此它将翻转至(反之亦然):

  • 问题内容: 例如,我目前正在这样做: 你能打败这个吗? 问题答案:

  • 有没有一种优雅的方式(没有迭代器或循环的优雅含义)将Java的对象的每个成员打印成逗号分隔的字符串? 例如,Java版本的Perl的 我检查了列表接口,但没有找到任何有希望的东西(我的最佳猜测是使用然后使用数组的?)

  • 我想用Java8lambda表达式在java列表中找到max值,所以,我有一个类叫TicketMaster,项表是TicketMasterLog,在TicketMasterLog类中我有StatusMaster类的statusId引用列,所以这里我想在TicketMasterLog列表中找到max statusId,下面我给出我的代码请参考 而TicketMasterItem表是 因此,在列表中,