ホームページ Java &#&面接の質問 Java コンテナに関するよくある面接の質問

Java コンテナに関するよくある面接の質問

Dec 18, 2019 pm 03:17 PM
java

Java コンテナに関するよくある面接の質問

#Java コンテナとは何ですか? (推奨される学習: Java よく見るテスト問題 )

Java コンテナに関するよくある面接の質問

# との違いは何ですか?

java.util.Collection は、コレクション インターフェイス (コレクション クラスの最上位インターフェイス) です。これは、コレクション オブジェクトに対する基本的な操作のための共通のインターフェイス メソッドを提供します。 Collection インターフェイスには、Java クラス ライブラリに多くの特定の実装があります。

Collection インターフェイスの重要性は、さまざまな特定のコレクションに対して最大化された統一された操作方法を提供することであり、その直接継承インターフェイスには List および Set が含まれます。

Collections は、コレクション クラスのツール クラス/ヘルパー クラスであり、コレクション内の要素の並べ替え、検索、スレッド セーフなどのさまざまな操作のための一連の静的メソッドを提供します。

リスト、セット、マップの違いは何ですか?

Java コンテナに関するよくある面接の質問

HashMap と Hashtable の違いは何ですか?

hashMap は、HashTable の contains メソッドを削除しますが、containsValue() メソッドと containsKey() メソッドを追加します。

HashTable は同期ですが、HashMap は非同期であり、hashTable よりも効率的です。

HashMap では空のキー値が許可されますが、hashTable では許可されません。

HashMap と TreeMap のどちらを使用するかを決めるにはどうすればよいですか?

HashMap は、Map での要素の挿入、削除、配置などの操作に最適です。ただし、順序付けられたキーのコレクションを反復処理する必要がある場合は、TreeMap の方が適しています。コレクションのサイズによっては、順序付けされたキーの走査のために HashMap に要素を追加し、そのマップを TreeMap に置き換えた方が高速な場合があります。

HashMap の実装原理について教えてください。

HashMap の概要: HashMap は、ハッシュ テーブルに基づく Map インターフェイスの非同期実装です。この実装では、すべてのオプションのマッピング操作が提供され、null 値と null キーが許可されます。このクラスはマッピングの順序を保証せず、特に順序が不変であることを保証しません。

HashMap データ構造: Java プログラミング言語には、2 つの最も基本的な構造があります。1 つは配列、もう 1 つはシミュレートされたポインター (参照) です。すべてのデータ構造は、これら 2 つの基本構造を使用できます。 HashMap 構造も例外ではありません。 HashMap は実際には、配列とリンク リストを組み合わせた「リンク リスト ハッシュ」データ構造です。

要素をハッシュマップに入れるときは、まずキーのハッシュコードに基づいてハッシュ値を再計算し、ハッシュ値に基づいて配列内の要素の位置 (添え字) を取得します。配列はすでにその位置に格納されています。他の要素が追加された場合、この位置の要素はリンクされたリストの形式で格納され、新しく追加された要素がチェーンの先頭に配置され、最初に追加された要素がチェーンの先頭に配置されます。チェーンの終端。配列内のこの位置に要素がない場合、要素はリンクされたリストの配列内のその位置に直接配置されます。

HashMap の実装は Jdk 1.8 で最適化されていることに注意してください。リンク リスト内のノード データが 8 を超えると、リンク リストはクエリ効率を向上させるために赤黒ツリーに変換されます。元の O(n) から O(logn)

へ、HashSet の実装原理について話しますか?

HashSet の最下層は HashMap で実装されます

HashSet の値は HashMap のキーに格納されます

HashMap の値は PRESENT# で統一されます

## ArrayList と LinkedList の違いは何ですか?

最も明らかな違いは、ArrrayList の基礎となるデータ構造は配列であり、ランダム アクセスをサポートしているのに対し、LinkedList の基礎となるデータ構造は双方向の循環リンク リストであり、ランダム アクセスをサポートしていないことです。 。添え字を使用して要素にアクセスする場合、ArrayList の時間計算量は O(1) ですが、LinkedList の時間計算量は O(n) です。

配列とリストの間で変換するにはどうすればよいですか?

リストを配列に変換: ArrayList の toArray メソッドを呼び出します。

配列をリストに変換: 配列の asList メソッドを呼び出します。

ArrayList と Vector の違いは何ですか?

Vector は同期されていますが、ArrayList は同期されていません。ただし、反復中にリストに変更を加えたい場合は、CopyOnWriteArrayList を使用する必要があります。

ArrayList は Vector より高速で、同期によりオーバーロードされません。

ArrayList は、コレクション ツール クラスを使用して同期リストと読み取り専用リストを簡単に取得できるため、より汎用性が高くなります。

Array と ArrayList の違いは何ですか?

Array は基本的な型とオブジェクトを保持できますが、ArrayList はオブジェクトのみを保持できます。

Array はサイズを指定した後は不変ですが、ArrayList のサイズは可変です。

Array は、addAll、removeAll、iterator などの ArrayList ほど多くの関数を提供しません。

Queue の Paul() と Remove() の違いは何ですか?

poll() とremove() はどちらもキューから要素を取り出しますが、poll() は要素の取得に失敗すると null を返しますが、remove() は要素の取得に失敗すると例外をスローします。失敗します。

どのコレクション クラスがスレッドセーフですか?

vector: arraylist よりも 1 つ多い同期メカニズム (スレッド セーフ) がありますが、効率が低いため、使用は推奨されません。 Web アプリケーション、特にフロントエンド ページでは、効率 (ページの応答速度) が優先されることがよくあります。

statck: スタック クラス、先入れ後出し。

ハッシュテーブル: ハッシュマップよりもスレッドセーフです。

enumeration: 列挙型、イテレータと同等。

イテレータ イテレータとは何ですか?

イテレータは、開発者がシーケンスの基礎となる構造を知らなくても、シーケンス内を走査して選択できるオブジェクトであるデザイン パターンです。イテレータは、安価に作成できるため、「軽量」オブジェクトと呼ばれることがよくあります。

イテレータの使い方特徴は何ですか?

Java の Iterator 関数は比較的単純で、一方向にのみ移動できます。

(1) メソッド iterator() を使用して、コンテナーがイテレーター。 Iterator の next() メソッドが初めて呼び出されるとき、シーケンスの最初の要素が返されます。注: iterator() メソッドは java.lang.Iterable インターフェースであり、Collection によって継承されます。

(2) next() を使用して、シーケンス内の次の要素を取得します。

(3) hasNext() を使用して、シーケンス内にまだ要素が存在するかどうかを確認します。

(4) 反復子によって新たに返された要素を削除するには、remove() を使用します。

Iterator は Java イテレータの最も単純な実装です。List 用に設計された ListIterator にはさらに多くの機能があります。List を双方向に走査でき、List から要素を挿入したり削除したりすることもできます。

Iterator と ListIterator の違いは何ですか?

Iterator は Set コレクションと List コレクションを走査するために使用できますが、ListIterator は List を走査するためにのみ使用できます。

Iterator はコレクションを前方にのみトラバースできますが、ListIterator は前方と後方の両方にトラバースできます。

ListIterator は Iterator インターフェイスを実装し、要素の追加、要素の置換、前後の要素のインデックスの取得などの他の関数を含みます。

以上がJava コンテナに関するよくある面接の質問の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

Javaの完全数 Javaの完全数 Aug 30, 2024 pm 04:28 PM

Java における完全数のガイド。ここでは、定義、Java で完全数を確認する方法、コード実装の例について説明します。

ジャワのウェカ ジャワのウェカ Aug 30, 2024 pm 04:28 PM

Java の Weka へのガイド。ここでは、weka java の概要、使い方、プラットフォームの種類、利点について例を交えて説明します。

Javaのスミス番号 Javaのスミス番号 Aug 30, 2024 pm 04:28 PM

Java のスミス番号のガイド。ここでは定義、Java でスミス番号を確認する方法について説明します。コード実装の例。

Java Springのインタビューの質問 Java Springのインタビューの質問 Aug 30, 2024 pm 04:29 PM

この記事では、Java Spring の面接で最もよく聞かれる質問とその詳細な回答をまとめました。面接を突破できるように。

Java 8 Stream Foreachから休憩または戻ってきますか? Java 8 Stream Foreachから休憩または戻ってきますか? Feb 07, 2025 pm 12:09 PM

Java 8は、Stream APIを導入し、データ収集を処理する強力で表現力のある方法を提供します。ただし、ストリームを使用する際の一般的な質問は次のとおりです。 従来のループにより、早期の中断やリターンが可能になりますが、StreamのForeachメソッドはこの方法を直接サポートしていません。この記事では、理由を説明し、ストリーム処理システムに早期終了を実装するための代替方法を調査します。 さらに読み取り:JavaストリームAPIの改善 ストリームを理解してください Foreachメソッドは、ストリーム内の各要素で1つの操作を実行する端末操作です。その設計意図はです

Java での日付までのタイムスタンプ Java での日付までのタイムスタンプ Aug 30, 2024 pm 04:28 PM

Java での日付までのタイムスタンプに関するガイド。ここでは、Java でタイムスタンプを日付に変換する方法とその概要について、例とともに説明します。

カプセルの量を見つけるためのJavaプログラム カプセルの量を見つけるためのJavaプログラム Feb 07, 2025 am 11:37 AM

カプセルは3次元の幾何学的図形で、両端にシリンダーと半球で構成されています。カプセルの体積は、シリンダーの体積と両端に半球の体積を追加することで計算できます。このチュートリアルでは、さまざまな方法を使用して、Javaの特定のカプセルの体積を計算する方法について説明します。 カプセルボリュームフォーミュラ カプセルボリュームの式は次のとおりです。 カプセル体積=円筒形の体積2つの半球体積 で、 R:半球の半径。 H:シリンダーの高さ(半球を除く)。 例1 入力 RADIUS = 5ユニット 高さ= 10単位 出力 ボリューム= 1570.8立方ユニット 説明する 式を使用してボリュームを計算します。 ボリューム=π×R2×H(4

PHP対Python:違いを理解します PHP対Python:違いを理解します Apr 11, 2025 am 12:15 AM

PHP and Python each have their own advantages, and the choice should be based on project requirements. 1.PHPは、シンプルな構文と高い実行効率を備えたWeb開発に適しています。 2。Pythonは、簡潔な構文とリッチライブラリを備えたデータサイエンスと機械学習に適しています。

See all articles