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


    関連記事

    no image

    画面にonclickを書かずにイベントを発生させる方法

    画面にonclickを記述すると、JavaScript側で関数名が変更になった際の修正が面倒になる。 なのでonclickを記述せずにイベントを発生させるように記述することが望ましいと子ドレビューで指 …

    pageEncodingとcontentTypeのcharsetの違い

    pageEncodingとcontentTypeのcharsetは処理されるタイミングが異なります。 それによって文字化けの原因につながっているので、どのように設定すればいいかを解説していきます。 違 …

    結城浩氏のPrototypeパターン 練習課題6-1の回答例

    結城浩氏著作「Java言語で学ぶデザインパターン入門」 Prototypeパターン 練習課題6-1の回答例です。 課題の概要 UnderLinePen、MessageBoxクラスのcreateClon …

    【Java】オブジェクト指向の練習題材(会員オブジェクト)

    前回記事、オブジェクト指向とは何なのかを簡単に説明してみるの練習題材です。   仕様 以下の会員クラスを作成し、Mainクラスで表示する。 会員クラスには、「会員」という単位で持つことできる …

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

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

    記事を探す

    SpringFramworkの良書

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

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