出題範囲
- Javaの基礎とデータ型
- 制御構文
- オブジェクト指向(クラス/インターフェース/sealed/record/enum)
- パターンマッチングとswitch
- 例外処理
- 配列とコレクション(Sequenced Collections含む)
- Stream APIとラムダ式
- 並行処理(仮想スレッド含む)
- Java I/O (NIO.2)
- JDBCによるデータベースアクセス
- ローカライゼーション
- モジュールシステム(JPMS)とアノテーション
例題に挑戦
スキルサートのAIが生成した演習問題のサンプルです。アプリでは毎週新しい問題が追加されます。
例題1
Java 21で導入されたSequenced Collectionsに関する問題です。次のコードを実行した際に出力される結果を選択してください。
```java
List<String> list = new ArrayList<>();
list.add("middle");
list.addFirst("front");
list.addLast("back");
System.out.print(list.getFirst() + ":" + list.reversed().getFirst());
```
- front:back
- middle:front
- back:front
- front:front
- middle:back
解答と解説を見る
正解: front:back
正解は『front:back』です。Java 21で導入されたSequencedCollectionインターフェースでは、要素の順序を意識した操作が可能になりました。ArrayListはこのインターフェースを実装しているため、addFirst("front")によってリストの先頭に、addLast("back")によってリストの末尾に要素が追加されます。この結果、リストの内容は [front, middle, back] となります。getFirst()は先頭の "front" を返し、reversed()はリストの逆順ビューを返すため、reversed().getFirst() は元のリストの末尾である "back" を返します。したがって、これらをコロンで連結した結果が出力されます。
例題2
SequencedMapインターフェースを実装したLinkedHashMapの動作に関する問題です。次のコードを実行したとき、標準出力に表示される文字列を選択してください。
```java
SequencedMap<Integer, String> map = new LinkedHashMap<>();
map.put(1, "one");
map.put(2, "two");
map.putFirst(3, "three");
System.out.print(map.firstEntry().getValue());
```
- one
- 例外が発生する
- null
- two
- three
解答と解説を見る
正解: three
正解は『three』です。LinkedHashMapはJava 21よりSequencedMapインターフェースを実装しており、挿入順序を維持するだけでなく、明示的に先頭や末尾への操作が可能です。put(1, "one")、put(2, "two")を実行した後、putFirst(3, "three")を呼び出すことで、キー3のエントリがマップの最前面(最初の要素)に配置されます。その直後にfirstEntry().getValue()を呼び出すと、現在の先頭要素であるキー3に対応する値 "three" が取得されます。他の選択肢については、putした順序のままではない点や、例外が発生する状況ではないことから誤りです。
Java SE 21 Developer (1Z0-830)の対策はアプリで
AIが毎週生成する新作問題・ランクマッチ・週次ランキング・AI診断で「続けられる」資格学習を。無料で始められます。