ホームページ  >  記事  >  Java  >  Java の古典的な面接質問集 (8)

Java の古典的な面接質問集 (8)

王林
王林転載
2020-07-16 17:11:472163ブラウズ

Java の古典的な面接質問集 (8)

1. コレクションとコレクションの違い

(より関連した面接の質問に関する推奨事項: java 面接の質問)

java.util.Collection は、コレクション フレームワークの親インターフェイスです。これは、コレクション オブジェクトに対する基本的な操作のための共通のインターフェイス メソッドを提供します。 Collection インターフェイスには、Java クラス ライブラリに多くの特定の実装があります。 Collection インターフェイスの重要性は、さまざまな特定のコレクションに対して最大限の統一された操作方法を提供することです。

java.util.Collections はラッパー クラスです。これには、コレクション操作に関連するさまざまな静的多態性メソッドが含まれています。このクラスはインスタンス化できず、Java のコレクション フレームワークを提供するユーティリティ クラスに似ています。これは、さまざまなコレクションに対する検索、並べ替え、スレッド セーフなどの操作を実装するための一連の静的メソッドを提供します。

2. Set 内の要素は繰り返すことができないので、重複を区別するためにどのような方法が使用されますか? == または equals() を使用する必要がありますか? それらの違いは何ですか?

#==:

基本型: 値が同じか比較

#参照型: アドレス値が同じか比較

equals ():

参照型: デフォルトでは、アドレス値が比較されますが、オーバーライド可能です。比較は、オブジェクトのメンバー変数の値が同じかどうかです。

クラスが独自のequalsメソッドを定義していない場合、そのデフォルトのequalsメソッド(Objectクラスから継承)は==演算子を使用し、2つの変数が指すオブジェクトが同じオブジェクトであるかどうかも比較します。このとき、equals を使用すると、== を使用した場合と同じ結果が得られますが、2 つの独立したオブジェクトを比較すると、常に false が返されます。

作成したクラスが、そのクラスによって作成された 2 つのインスタンス オブジェクトの内容が同じかどうかを比較できるようにしたい場合は、equals メソッドをオーバーライドし、どのような状況で 2 つのインスタンス オブジェクトが同じであるかを判断する独自のコードを作成する必要があります。内容は同じと考えられます。

(推奨される関連チュートリアル:

java 入門チュートリアル

)

3. Iterator の役割とは何ですか

は次の目的で使用されます。コレクションのトラバース の要素には、for および for each に比べて利点があります。

はノードの削除による例外を報告せず、独自のデータ構造で実装することもできます。

4. HashSet と TreeSet の違いは何ですか?また、いつ使用するのですか?

基本:

1. TreeSet はバイナリ ツリーとして実装されており、Treeset 内のデータは自動的に並べ替えられ、null 値は許可されません。

2. HashSet はハッシュ テーブルによって実装されます。HashSet 内のデータは順序付けされていません。NULL を入れることはできますが、NULL を 1 つだけ入れることができます。両方の値を繰り返すことはできません。データベースが唯一の制約です。

3. HashSet では、入力されるオブジェクトが HashCode() メソッドを実装する必要があります。入力されるオブジェクトは、ハッシュコード コードによって識別されます。同じコンテンツを持つ文字列オブジェクトは同じハッシュコードを持つため、入力されるコンテンツは繰り返すことはできません。ただし、同じクラスのオブジェクトを異なるインスタンスに配置することはできます。

(ビデオ チュートリアルの推奨:

Java ビデオ チュートリアル

)時間計算量:

HashSet はハッシュ テーブルによって実装されるため、要素は次のとおりです。注文されていない。 add()、remove()、contains() メソッドの時間計算量は O(1) です。

TreeSet はツリー構造によって実装され、その中の要素は順序付けされています。したがって、add()、remove()、および contains() メソッドの時間計算量は O(logn) です。

TreeSet を使用してカスタム クラス オブジェクトを保存する場合、カスタマイズが配置されているクラスは Comparable インターフェイスを実装する必要があります。このインターフェイスが実装されていないと、大小関係が区別できず、並べ替えたい場合は、 TreeSet の場合 すべてのフィールド、つまり TreeSet を比較するには、compare() メソッドが 0 を返すかどうかに基づいて、重複する要素があるかどうかを判断します。

TreeSet は重複データを区別するために Comparable に依存し、

HashSet は重複データを区別するために hashCode() とquals() に依存します。

以上がJava の古典的な面接質問集 (8)の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はcsdn.netで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。