テスト駆動開発 プログラミング Java

【Java】ArrayListの最長文字列を取得する簡単な方法

投稿日:2020年8月17日 更新日:

(追記)2020/08/19
1. Listが空の場合(NoSuchElementException)に対応しました。
2. Nullが含まれていた場合、空文字として扱うように修正しました。

ArrayList<String>に格納されている文字列のうち、最大長であるものを簡単に取り出す方法です。
普通に考えたら、forで回してlenghtがMaxになるものを取得するというものですが、
ここではstreamを使って 1行 簡単に取得します。

注)streamはJava8以降で利用可能です。

ソースコード

maxString()が最大文字列長を取得するメソッドです。

 

解説

  • .map(s -> s == null ? “” : s)
  •  _strListの要素がNULLの場合は空文字に置換し、
     そうでない場合はその文字列をそのまま返します。

  • max(
  •  指定されたComparator(全体順序付けを行う比較関数)の最大要素を返します。
     これにより、Comparatorで比較した最大値が返ってきます。

  • Comparator.comparing(String::length)
  •  比較するためのキーとして、String型のlengthを指定します。
     これにより、文字列の長さで比較します。

  • .get()
  •  値を返します。

    よって、String型のlengthで比較して最大となる値を返すことができます。

     

    テストコード(おまけ)

    検証したテストコードです。
    今後は、public static void main(String…strings) で例示するのではなく、
    TDDの学習も兼ねて、テストコードで例示していきたいと思っています。

    -テスト駆動開発, プログラミング, Java
    -,

    執筆者:


    comment

    メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

    CAPTCHA


    関連記事

    Eclipseでタブを半角スペースに変換する便利プラグイン!

    Eclipseでタブを半角スペースに変換する便利プラグインに、 AnyEdit Toolsというものがあります。 導入方法を以下に記載致しましたので参考にして下さい。   どういうものか? …

    CompsiteパターンでHTMLタグを実現するには?

    Compositeパターンに応用できそうなものとして、 HTMLタグなんかいいかと思いコーディングしてみました。   クラス図   説明 Compositeパターンは再帰構造を実現 …

    【Laravel】SQLの確認はenableQueryLogを使う

    SQLのデバッグのために、SQLとバインドされた値を確認したいことがあります。 その時に使える方法として、よく提示されるのは以下の2つです。 1.enableQueryLogメソッドとgetQuery …

    【Java】LinkedHashSetの使い方(挿入順を保持するSet)

    LinkedHashSetはHashSetのサブクラスであり、同じメソッドが実装されています。 メソッドの使い方であればHashSetと同じなので、HashSetの使い方を参照下さい。  ↓ 【Jav …

    elseを使わないことでパフォーマンスが下がる場合の対処法

      状況 前回記事(なぜelse、else ifを書かないようにすべきなのか?)のような ifのみで判定されており、それがfor文等の繰り返し処理の中にある場合は パフォーマンスが下がる。 …

    記事を探す

    SpringFramworkの良書

    ■おすすめ教材
    Javaの基本を学んだ人が、次のステップとして読む本(中級者向け)

    ※SpringはJavaのFrameworkの1つです。
    変更のしやすさ、保守性の高さが特徴です。