List<String>
があり、潜在的に数千の文字列を保持しています。検証メソッドを実装しています。これには、各文字列に先頭または末尾の空白がないことを確認することが含まれます。
現在、リストを反復処理し、各String
に対して String.trim() を呼び出し、新しいList<String>
に追加して、元のリストに再割り当てしています:
List<String> trimmedStrings = new ArrayList<String)();
for(String s : originalStrings) {
trimmedStrings.add(s.trim());
}
originalStrings = trimmedStrings;
DRYer これを行う方法があるように感じます。ここに、より効率的な代替アプローチがありますか?ありがとう!
編集:はい、私はJava 8なので、Java 8の提案を歓迎します!
Java 8では、次のようなものを使用する必要があります。
List<String> trimmedStrings =
originalStrings.stream().map(String::trim).collect(Collectors.toList());
また、このメソッドを呼び出すことにより、初期リストの要素に単項String::trim
演算子を使用することができます(トリミングされていないString
インスタンスが上書きされます)。
originalStrings.replaceAll(String::trim);
Java-8を使用している場合は、次を使用できます。
final List<Object> result = arrayList.stream()
.map(String::trim)
.collect(Collectors.toList());