テスト駆動開発 プログラミング 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


    関連記事

    【Java入門】クラスの継承、オーバーライド

    概要 クラスの継承とは、継承元(親)のフィールド(値)、メソッド(機能)を継承先(子)に引き継がせることです。 継承先(子)では、追加のフィールド(値)、メソッド(機能)を持つことができます。 つまり …

    【Java】ポートフォリオ例(高配当株分析ツール)

    概要 ポートフォリオにスクレイピングツールが良いと以前の記事でご紹介しました。 どんなものが作れるのか? ということの具体例として、私が作成したスクレイピングツールを紹介します。 仕様 スクレイピング …

    【JdbcTemplate】IN句に値を入れて複数件取得する方法

    JdbcTemplateでIN句に毎回異なる数の値をセットして、 複数のレコードを取得する場合は、「NamedParameterJdbcTemplate」で取得することができます。 コード例 [cra …

    Javaで数値(int)を部分一致判定する

    文字列に変換して判定します。 <方法> ・matchesメソッドで正規表現使う。 ・containsメソッドに判定文字を渡す。 また、メソッドに切り出すと、intを変換する処理を個別に書かなくてよくな …

    compiler.automake.allow.when.app.runningの設定が無くなっている件

    概要 IntelliJのレジストリ設定から、 compiler.automake.allow.when.app.running が無くなっている件について、設定場所が変わっていたことのメモです。 仕様 …

    SpringFramworkの良書

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

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