降低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)
谢谢,
我有一个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 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)
我对使用哪个建议以及所有建议的用例感到困惑。我可以就所有建议使用哪种方法以及如何理解获得帮助吗?