HOME»基本情報技術者試験掲示板»平成27年秋期午後問11
投稿する

平成27年秋期午後問11 [4487]

 PPさん(No.1) 
問一のeの解説について、
entries.add(0, new Entry(index, blockData));
の処理はリスト(キャッシュ)に要素(キャッシュエントリ)を追加する処理ですが、第1引数が0なので、要素の挿入は常にリストの先頭に対して行われることがわかります。

とありますが、引数が0であることがどうして常に要素をリストの先頭に大して挿入するのか、よくわからないのでどなたか説明をお願いします。
2022.10.13 11:54
jjon-comさん(No.2) 
FE ゴールドマイスター
リスト型の変数 entries は次のように定義されており,

> final List<Entry> entries = new ArrayList<Entry>();

java.util.List の .addメソッドは次のように定義されています。

> public void add(int index, E e)
> 指定された要素をリスト内の指定された位置に挿入する。
> 指定された位置及びその後に既に要素がある場合は,それらの要素をシフトする。
> 引数:index ― 挿入する位置のインデックス
>       e ― リストに追加する要素
https://www.fe-siken.com/pdf/27_aki/java.pdf
(この資料は午後の問題冊子の巻末に掲載されています)

このリストの先頭要素を指すインデックスが 0 だ,と
上記PDFに書いてあるかと思ったら,書いてないのですね…。

> 最初のブロックのインデックス値は,0である。

という問題文から推測するか,または,基本情報の受験者にとって
先頭要素が0番目だというのは必要な知識だということになるのでしょう。
2022.10.13 16:10
 PPさん(No.3) 
理解しました。解説ありがとうございました。
2022.10.13 16:16
返信投稿用フォームスパム防止のためにスレッド作成日から30日経過したスレッドへの投稿はできません。
© 2010- 基本情報技術者試験ドットコム All Rights Reserved.

Pagetop