相关疑难解决方法(0)

如何有效地小写集合的每个元素?

降低List或Set的每个元素的最有效方法是什么?

我对列表的想法:

final List<String> strings = new ArrayList<String>();
strings.add("HELLO");
strings.add("WORLD");

for(int i=0,l=strings.size();i<l;++i)
{
  strings.add(strings.remove(0).toLowerCase());
}
Run Code Online (Sandbox Code Playgroud)

有更好,更快的方式吗?这个例子对于一个Set怎么样?由于目前没有方法将操作应用于Set(或List)的每个元素,是否可以在不创建额外临时Set的情况下完成?

像这样的东西会很好:

Set<String> strings = new HashSet<String>();
strings.apply(
  function (element)
  { this.replace(element, element.toLowerCase();) } 
);
Run Code Online (Sandbox Code Playgroud)

谢谢,

java string

39
推荐指数
4
解决办法
6万
查看次数

修剪List(String>中的所有元素的最佳方法是什么?

我有一个List<String>,可能有成千上万的字符串.我正在实现一个验证方法,其中包括确保每个字符串中没有任何前导或尾随空格.

我正在迭代列表,为每个调用String.trim()String,并将其添加到新的List<String>并重新分配回原始列表:

List<String> trimmedStrings = new ArrayList<String)();
for(String s : originalStrings) {
  trimmedStrings.add(s.trim());
}

originalStrings = trimmedStrings;
Run Code Online (Sandbox Code Playgroud)

我觉得有一种干燥方法可以做到这一点.这里有替代的,更有效的方法吗?谢谢!

编辑:是的我在Java 8上,所以欢迎Java 8建议!

java list java-8

11
推荐指数
1
解决办法
3万
查看次数

何时使用map和forEach

我正在学习Java 8,遇到了一种情况。我必须在哪里遍历字符串列表,然后将它们转换为upperCase。可能的解决方案是流式处理列表。在Intellij的许多建议中,以下两项似乎很有用。

list.stream()
.map(String::toUpperCase)
Run Code Online (Sandbox Code Playgroud)

要么

list.stream().
forEach(p -> p.toUpperCase())
Run Code Online (Sandbox Code Playgroud)

我对使用哪个建议以及所有建议的用例感到困惑。我可以就所有建议使用哪种方法以及如何理解获得帮助吗?

java java-stream

1
推荐指数
1
解决办法
63
查看次数

标签 统计

java ×3

java-8 ×1

java-stream ×1

list ×1

string ×1