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

当ページのリンクには広告が含まれています。
(追記)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の学習も兼ねて、テストコードで例示していきたいと思っています。

    最後までお読み頂き、ありがとうございました!
    ご意見・ご要望がありましたら、遠慮なくコメント下さい!

    よかったらシェアしてね!
    • URLをコピーしました!
    • URLをコピーしました!

    この記事を書いた人

    リーマンショックの影響で26歳の時にIT業界から離れ、紆余曲折を経て34歳でエンジニアに復帰しました。
    復帰前は開発未経験でしたが、独学した知識と面接時のコミュニケーション力で見事開発エンジニアとして復帰しました!
    今はフリーランスエンジニアとして仕事をしています。

    ■保有資格
    ・Java Gold SE 11

    コメント

    コメントする

    CAPTCHA


    目次