Javaコレクションインタビューの質問と回答[新入生と経験者向け]
公開: 2020-12-16学部でJavaを扱ったことがある場合、またはJavaを扱ったことがある場合は、Javaコレクションフレームワークを十分に理解している必要があります。 Javaの旅を始めたばかりの初心者にとって、コレクションフレームワークは、オブジェクトのグループ(コレクション)を格納および操作するために設計された統合アーキテクチャです。
基本的に、「コレクション」はオブジェクトの単一のグループを表します。 Javaコレクションには、インターフェース、クラス(ArrayList、Vector、Stack、Hashtableなど)、およびデータを格納および処理するためのすぐに使用できるアーキテクチャーを備えたアルゴリズムが含まれています。
この記事では、Javaコレクションの面接で最もよく聞かれる質問を見ていきます。 Javaプロファイルの候補者に面接する際に、面接でよく聞かれる基本的な質問のリストを作成しました。 これは、次の面接でどのような質問を楽しみにしているかを理解するのに役立ちます。
Javaコレクションのインタビューの質問と回答
1.コレクションフレームワークを使用する利点は何ですか?
Javaコレクションには、スレッドセーフな操作のためのGenericsコレクションクラスとConcurrentコレクションクラスの両方が含まれています。 また、Java並行パッケージでの実装とともにブロッキングインターフェースが装備されています。 Javaコレクションフレームワークのいくつかの利点は次のとおりです。
コードの再利用性と相互運用性を促進します。

コアコレクションクラスを使用すると、開発の労力と時間が大幅に削減されます。
JDKに同梱されているコレクション・クラスにより、コードの保守に必要な労力が軽減されます。
2.配列とコレクションを区別します。
配列とコレクションはオブジェクトの保存とデータの操作に使用されますが、いくつかの本質的な違いがあります。
- 実行時の要件に応じて配列の長さを増減することはできません。配列のサイズは固定されています。 ただし、スケーリングのニーズに応じてコレクションのサイズを変更できます。
- 配列は同種の(類似または同じ)オブジェクトのみを格納できますが、コレクションは異種のオブジェクトのグループを格納できます。
- 配列は、ユーザーの要件に応じてすぐに使用できるメソッド(検索、並べ替え、挿入など)を提供しませんが、コレクションには常にすぐに使用できるメソッドが含まれます。
3.コレクションフレームワークにおけるジェネリックの役割は何ですか?
Genericsを使用すると、コレクションに格納できるオブジェクトのタイプを指定または定義できます。 別のタイプの要素を追加しようとすると、Genericsはコンパイル時エラーを表示します。 したがって、コンパイル中にエラーを表示することにより、実行時にClassCastExceptionを防ぐのに役立ちます。 さらに、Genericsはキャストとinstanceof関数を使用する必要がないため、コードをクリーンで正確にします。
4.コレクションフレームワークのインターフェースに名前を付けます。
コレクションフレームワークの5つのコアインターフェイスは次のとおりです。
コレクションインターフェイス–これはJavaコレクション階層の基盤です。 Javaのほとんどのコレクションは、Collectionsインターフェースから継承されます。
リストインターフェイス–順序付けられた要素とその重複を含む拡張配列です。 このインターフェースは、インデックスベースの検索をサポートします。 したがって、インデックスから任意の要素にアクセスできます。 これは、ArrayList、LinkedListなどのさまざまなクラスを使用して実装されます。
インターフェースの設定–重複する要素を含めることができないコレクションクラスです。 Listとは異なり、インデックスベースの検索をサポートしておらず、要素の順序を定義していません。 セットは、数学的なセットの抽象化をモデル化し、HashSet、TreeSet、LinkedHashSetなどのクラスによって実装されます。
マップインターフェイス–データをキーと値のペアで格納する2次元のデータ構造です。 キーは一意のハッシュコードですが、値は要素を示します。 マップに重複するキー/要素を含めることはできません。
キューインターフェイス–このインターフェイスは、先入れ先出し(FIFO)アプローチで要素を配置します。 したがって、キューインターフェイスの要素はフロントエンドから削除され、リアエンドから追加されます。
また読む:Javaプロジェクトをコーディング、コンパイル、実行する方法
5. Javaでequals()メソッドをオーバーライドする必要があるのはいつですか。
equals()メソッドの最初の実装では、2つのオブジェクトが類似しているかどうかをチェックしますが、プロパティに基づいてオブジェクトを比較する場合は、equals()メソッドをオーバーライドする必要があります。
6.プロパティファイルを使用することは有益ですか?
はい、Javaでプロパティファイルを使用すると、大きな利点が得られます。このファイルの値を変更すると、Javaクラスを再コンパイルしなくても、自動的に反映されます。 その結果、プロパティファイルは主に変更されやすい情報(ユーザー名やパスワードなど)を保存するために使用されます。これにより、Javaアプリケーションを簡単に管理できます。
7.コレクションフレームワークのイテレータの機能は何ですか?
Iteratorは、java.utilパッケージに含まれているインターフェースです。 ユニバーサルJavaカーソルとも呼ばれるイテレータは、オブジェクトのコレクションを反復処理するのに役立ちます。 Iteratorを使用すると、オブジェクトのコレクションを1つずつ渡すことができ、READおよびREMOVE操作をサポートします。 Iteratorメソッド名は簡単に実装できるため、広く使用されています。
8.コレクションオブジェクトをどのように並べ替えることができますか?
コレクションフレームワークでは、並べ替えは通常、 ComparableおよびComparatorインターフェイスを使用して実装されます。 Collections.sort()メソッドを使用すると、compareTo()メソッドで指定された自然な順序に基づいて要素が並べ替えられます。 ただし、Collections.sort(Comparator)メソッドを使用すると、Comparatorインターフェイスのcompare()メソッドに従って要素が並べ替えられます。
読む:Java Swing Project
9. ArrayListをArrayに、ArrayをArrayListに変換することは可能ですか?
はい、そうすることは可能です。 ArrayクラスのasList()関数を使用して、配列をArrayListに変換できます。 この構文は次のとおりです。

Arrays.asList(item)
次のように、ArrayListクラスのtoArray()関数を使用して、ArrayListを配列に変換できます。
List_object.toArray(new String [List_object.size()])
10.リストを逆にする方法は?
ArrayListをどのように逆にしますか?
Collectionsクラスのreverse()関数を使用して、ArrayListを逆にすることができます。 この構文は次のとおりです。
public static void reverse(コレクションc)
11.「BlockingQueue」とは何ですか?
BlockingQueueインターフェースは、java.util.concurrentパッケージに含まれています。 その主な目的は、スレッドが空のキューをデキューするか、既存のフルキューをエンキューしようとするたびにブロッキングをアクティブ化することにより、フロー制御を強化することです。 BlockingQueueインターフェイスはnull値を受け入れません。また、null値を挿入しようとすると、NullPointerExceptionが表示されます。
12.「優先キュー」について説明します。
優先キューは、標準キューやスタックデータ構造などの抽象データ型です。 ただし、このキューでは、各要素に「優先度」と呼ばれる固有の機能があります。 優先度付きキューは優先度ヒープに基づいているため、挿入順序に関係なく、優先度の低い要素の前に優先度の高い要素を提供します。 優先キューでは、要素は自然な順序に従って順序付けられるか、キューの構築時に使用されるコンパレーターによって順序付けられます(使用するコンストラクターによって異なります)。
13. HashSetクラスはどのように要素を格納しますか?
HashSetクラスは、AbstractSetクラスを継承し、Setインターフェイスを実装するJavaコレクションフレームワークのメンバーです。
HashSetは、要素のコレクションを作成および保存するためのハッシュテーブルを実装します。 Hashtableは、ハッシュメカニズムを使用してHashSet内にデータを格納するHashMapクラスのインスタンスです。 ハッシュとは、情報をハッシュコードと呼ばれる一意の値に変換する手法を指します。 ハッシュコードは、一意のキーに関連付けられたデータにインデックスを付けます。
14. TreeSetまたはHashSetにnull要素を追加することは可能ですか?
HashSetに追加できるnull要素は1つだけですが、TreeSetでは要素を格納するためにNavigableMapを使用するため、追加することはできません。 NavigableMapは、null値を受け入れ/サポートしないSortedMapのサブタイプです。 TreeSetにnull要素を挿入すると、NullPointerExceptionがトリガーされます。
15. emptySet()関数は何をしますか?
Javaでは、Collections.emptySet()を使用して、すべてのnull要素を削除することにより、空の不変セットを返します。 emptySet()を宣言するための構文は次のとおりです。
public static final <T> Set <T> emptySet()
16.マップインターフェイスがコレクションインターフェイスを拡張しないのはなぜですか?
Mapインターフェイスはキーと値のペア構造に従いますが、Collectionインターフェイスは、定義されたアクセスメカニズムを使用して構造化された方法でオブジェクトのコレクションを格納します。 コレクションインターフェイスのadd(E e)関数は、マップのput(Kキー、V値)関数のキーと値のペアモデルをサポートしていないため、マップはコレクションインターフェイスを拡張しません。
17.マップインターフェイスによって拡張されたさまざまなコレクションビューに名前を付けます。
マップインターフェイスは、キーと値のペアの3つのビューを提供します。
- キーセットビュー
- バリューセットビュー
- エントリーセットビュー
18.JavaHashmapのコア機能を一覧表示します。
Hashmapの基本的な機能は次のとおりです。
- キーと値のペアを形成して要素を保存し、キーを正しいメソッドに渡すことで値を取得できます。
- マップに要素が存在しない場合は、NoSuchElementExceptionが表示されます。
- オブジェクト参照のみを格納するため、doubleやintなどのプリミティブデータ型を使用できません。 代わりに、IntegerやDoubleなどのラッパークラスを使用できます。
必読:Javaインタビューの質問と回答
19.「スタック」を定義します。

Javaでは、スタックは、関数によって作成された一時変数を保持するコンピューターのメモリの指定された領域を示します。 変数は、実行時にスタックで宣言、保存、および初期化されます。
20.「Big-O表記」を定義します。
Big-O表記は、データ構造内の要素の数に関連するアルゴリズムのパフォーマンスを定義します。 コレクションクラスはデータ構造であるため、Big-O表記を使用して、メモリ、時間、およびパフォーマンスに基づいて使用するコレクションの実装を決定する必要があります。
世界のトップ大学のソフトウェアエンジニアリングコースに登録します。 エグゼクティブPGプログラム、高度な証明書プログラム、または修士プログラムを取得して、キャリアを早急に進めましょう。
結論
Java、フルスタックソフトウェア開発について詳しく知りたい場合は、upGrad&IIIT-Bのフルスタックソフトウェア開発のエグゼクティブPGプログラムをチェックしてください。これは、働く専門家向けに設計されており、500時間以上の厳格なトレーニングを9時間以上提供しています。プロジェクト、割り当て、IIIT-B卒業生のステータス、実践的な実践的なキャップストーンプロジェクト、トップ企業との仕事の支援。
