1. ホーム
  2. java

[解決済み] subList() の使用方法

2023-07-23 23:30:23

質問

Glassfishのログファイルのリストを表示するJSFページがあります。私はページネーションにレイジーローディングを使用しています。私は、ログファイル名のリストをJavaの List .

private List<directoryListObj> dataList = new ArrayList<>();

dataList = dataList.subList(firstRow, lastRow);

そして、ここが問題です。例えば、私は35個のファイルをディレクトリに入れています。これを実行すると

dataList = dataList.subList(5, 15);

うまくいきます。しかし、これを実行すると

dataList = dataList.subList(30, 38);

リストの外側にあるインデックスを取得したいので、間違ったインデックスというエラーが発生します。例えば、30から35までのListの要素を返すにはどうしたらいいでしょうか?30から40までのインデックスを取得したいのですが、35インデックスしかない場合、5インデックスしか取得できません。

どのように解決するのですか?

使用方法 subList(30, 38); を使用すると、最大インデックス38がリストで利用できないため、失敗します。

唯一の方法は、サブリストを要求する前に、リストサイズ()メソッドを使用して明示的に最大インデックスを決定することでしょう。

例えば、sizeを調べると35を返すので sublist(30, size());

または

pb2q のコメントからコピーしたものです。

dataList = dataList.subList(30, 38 > dataList.size() ? dataList.size() : 38);