国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

ホームページ Java &#&面接の質(zhì)問(wèn) ほぼすべての Java インタビューで聞かれる質(zhì)問(wèn): ArrayList と LinkedList の違いについての話

ほぼすべての Java インタビューで聞かれる質(zhì)問(wèn): ArrayList と LinkedList の違いについての話

Jul 26, 2023 pm 03:11 PM
java Javaの面接の質(zhì)問(wèn)

まえがき

みなさん、こんにちは。私はあなたの古い友人、Qing Geです。寂しがっていると思いますので、またここに來(lái)ました。そうですか?

Java のデータ構(gòu)造が面接の焦點(diǎn)です。Java の面接に參加した學(xué)生ならある程度の経験があると思います。面接官がこのような質(zhì)問(wèn)をするとき、単に「使い方を知っている」というレベルにとどまるのではなく、Java で一般的に使用されるデータ型の基礎(chǔ)となる構(gòu)造を?qū)W習(xí)したかどうかを確認(rèn)したいことがよくあります。では、面接中にこの質(zhì)問(wèn)にうまく答え、面接官を満足させるにはどうすればよいでしょうか?

今回は、Java の高周波テスト ポイント ArrayList と LinkedList の原理を分析し、皆様のお役に立てれば幸いです。

ArrayList と LinkedList の概要

ArrayList最下層は、次の型の配列です。オブジェクト。初期容量は 10 で、動(dòng)的拡張をサポートします。拡張された容量は現(xiàn)在の容量の 1.5 倍です。最大容量は Integer.MAX_VALUE - 8 (ただし、Integer.MAX_VALUE まで拡張できます)??栅い?8 ビットについては、 、現(xiàn)在の説明は、一部のマシンのメモリ オーバーフローを回避し、エラーの可能性を減らすためですです。

LinkedList最下層は、初期容量が 0 の雙方向リンク リストです。容量を拡張するには、新しいノードを作成し、そのノードにポインタを指定するだけです。

これを口頭で表現(xiàn)可能な言??語(yǔ)に簡(jiǎn)略化し、面接中に學(xué)生が面接官に説明しやすくするために、ここではソース コードの補(bǔ)助的な説明を掲載しません。興味のある學(xué)生は自分でソース コードを確認(rèn)してください。 . この領(lǐng)域の理解を深めるための內(nèi)部構(gòu)造とメソッド。

#違い

クエリ

  • ArrayList のランダム アクセスは、要素が順?lè)烁窦{されるため、非常に効率的です。添字インデックスを通じて、メモリ內(nèi)のクエリされたデータの位置を知ることができます。アドレス指定は高速で、時(shí)間計(jì)算量は O(1);
  • LinkedList のクエリ効率は低く、指定されたデータをクエリする場(chǎng)合、リンク リストを 1 つずつたどる必要があり、時(shí)間計(jì)算量は O(n) です。

挿入

  • ArrayList は最後に効率的に挿入し、時(shí)間計(jì)算量は O(1) ですが、 in 他の位置での挿入効率は比較的低く、大量のデータ移動(dòng)が必要となり、時(shí)間計(jì)算量は O(n) です;
  • LinkedList は先頭への要素の挿入の方が効率的です次數(shù)はO(1)ですが、途中の指定位置に要素を挿入するには、要素の位置をトラバースして見つけてから挿入する必要があります。複雑さは O(n) です。

Delete

  • ArrayList から要素を削除するには、終了ノードを除く大量のデータの移動(dòng)が必要です。 O(n);
  • LinkedList は要素の削除に比較的効率的です。ポインタのポイントを変更するだけで済みますが、要素を削除するにはデータの場(chǎng)所をクエリするためのトラバースが必要です。時(shí)間計(jì)算量は O (n) です。

メモリ空間

  • ArrayList は配列をベースに実裝されており、拡張ごとに容量が固定されるため、スペースの一部を予約する;
  • LinkedList は二重リンク リストに基づいているため、データの保存に加えて、各ノードは前と次のノードのポインターも保存する必要があります。 、ある程度のスペースを消費(fèi)します。

展開メカニズム

  • ArrayList を展開するたびに、元の配列の要素を新しい配列;
  • LinkedList はリンクされたリストであり、展開はありません。

同じ點(diǎn)

スレッドの安全性

ArrayList と LinkedList はどちらもスレッド セーフではないため、マルチスレッド環(huán)境では簡(jiǎn)単にダーティ リーディングの問(wèn)題が発生する可能性があります。Collections.synchronizedList() メソッドを使用すると、スレッド セーフを確保できます

ストレージ機(jī)能

保存された要素はすべて順序付けされており、繰り返すことができます。新しい要素はリストの最後に保存されます。

以上がほぼすべての Java インタビューで聞かれる質(zhì)問(wèn): ArrayList と LinkedList の違いについての話の詳細(xì)內(nèi)容です。詳細(xì)については、PHP 中國(guó)語(yǔ) Web サイトの他の関連記事を參照してください。

このウェブサイトの聲明
この記事の內(nèi)容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰屬します。このサイトは、それに相當(dāng)する法的責(zé)任を負(fù)いません。盜作または侵害の疑いのあるコンテンツを見つけた場(chǎng)合は、admin@php.cn までご連絡(luò)ください。

ホットAIツール

Undress AI Tool

Undress AI Tool

脫衣畫像を無(wú)料で

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

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

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無(wú)料のコードエディター

SublimeText3 中國(guó)語(yǔ)版

SublimeText3 中國(guó)語(yǔ)版

中國(guó)語(yǔ)版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強(qiáng)力な PHP 統(tǒng)合開発環(huán)境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

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

JDBCを使用してJavaのトランザクションを処理する方法は? JDBCを使用してJavaのトランザクションを処理する方法は? Aug 02, 2025 pm 12:29 PM

JDBCトランザクションを正しく処理するには、最初に自動(dòng)コミットモードをオフにし、次に複數(shù)の操作を?qū)g行し、結(jié)果に応じて最終的にコミットまたはロールバックする必要があります。 1。CONN.SETAUTOCOMMIT(FALSE)を呼び出して、トランザクションを開始します。 2。挿入や更新など、複數(shù)のSQL操作を?qū)g行します。 3。すべての操作が成功した場(chǎng)合はconn.commit()を呼び出し、データの一貫性を確保するために例外が発生した場(chǎng)合はconn.rollback()を呼び出します。同時(shí)に、リソースを使用してリソースを管理し、例外を適切に処理し、接続を密接に接続するために、接続の漏れを避けるために使用する必要があります。さらに、接続プールを使用してセーブポイントを設(shè)定して部分的なロールバックを達(dá)成し、パフォーマンスを改善するためにトランザクションを可能な限り短く保つことをお?jiǎng)幛幛筏蓼埂?/p>

Javaでカレンダーを操作する方法は? Javaでカレンダーを操作する方法は? Aug 02, 2025 am 02:38 AM

Java.Timeパッケージのクラスを使用して、古い日付とカレンダーのクラスを置き換えます。 2。LocalDate、LocalDateTime、LocalTimeを通じて現(xiàn)在の日付と時(shí)刻を取得します。 3。of()メソッドを使用して特定の日付と時(shí)刻を作成します。 4.プラス/マイナスメソッドを使用して、時(shí)間を不正に増加させて短縮します。 5. ZonedDateTimeとZoneIDを使用して、タイムゾーンを処理します。 6。DateTimeFormatterを介したフォーマットおよび解析の文字列。 7.インスタントを使用して、必要に応じて古い日付型と互換性があります?,F(xiàn)代のJavaでの日付処理は、java.timeapiを使用することを優(yōu)先する必要があります。

Javaフレームワークの比較:Spring Boot vs Quarkus vs Micronaut Javaフレームワークの比較:Spring Boot vs Quarkus vs Micronaut Aug 04, 2025 pm 12:48 PM

Pre-formanceTartuptimeMemoryusage、quarkusandmicronautleadduetocopile-timeprocessingingandgraalvsupport、withquarkusoftentylightbetterine serverlessシナリオ。

HTTPミドルウェアロギングの例を例に進(jìn)めます HTTPミドルウェアロギングの例を例に進(jìn)めます Aug 03, 2025 am 11:35 AM

GOのHTTPログミドルウェアは、リクエストメソッド、パス、クライアントIP、および時(shí)間がかかることを記録できます。 1. http.handlerfuncを使用してプロセッサをラップします。2。next.servehttpを呼び出す前後の開始時(shí)間と終了時(shí)間を記録します。完全なサンプルコードの実行が検証されており、中小のプロジェクトの開始に適しています。拡張機(jī)能の提案には、ステータスコードのキャプチャ、JSONログのサポート、リクエストIDトラッキングが含まれます。

Garbage CollectionはJavaでどのように機(jī)能しますか? Garbage CollectionはJavaでどのように機(jī)能しますか? Aug 02, 2025 pm 01:55 PM

JavaのGarbage Collection(GC)は、メモリを自動(dòng)的に管理するメカニズムであり、到達(dá)不可能なオブジェクトを取り戻すことでメモリ漏れのリスクを軽減します。 1.GCルートオブジェクトからのオブジェクトのアクセシビリティ(スタック変數(shù)、アクティブスレッド、靜的フィールドなど)、および到達(dá)不可能なオブジェクトはゴミとしてマークされています。 2。マーククリアリングアルゴリズムに基づいて、すべての到達(dá)可能なオブジェクトをマークし、マークのないオブジェクトをクリアします。 3.世代の収集戦略を採(cǎi)用する:新世代(Eden、S0、S1)は頻繁にMinorGCを?qū)g行します。高齢者のパフォーマンスは少なくなりますが、MajorGCを?qū)g行するのに時(shí)間がかかります。 Metaspaceはクラスメタデータを保存します。 4。JVMはさまざまなGCデバイスを提供します。SerialGCは小さなアプリケーションに適しています。 ParallelGCはスループットを改善します。 CMSが減少します

ユーザーデータにHTML「入力」タイプを使用します ユーザーデータにHTML「入力」タイプを使用します Aug 03, 2025 am 11:07 AM

適切なHTMLinputタイプを選択すると、データの精度を向上させ、ユーザーエクスペリエンスを向上させ、使いやすさを向上させることができます。 1.テキスト、電子メール、電話、番號(hào)、日付など、データ型に従って対応する入力タイプを選択します。 2。HTML5を使用して、より直感的な相互作用方法を提供できるU(xiǎn)RL、色、範(fàn)囲、検索などの新しいタイプを追加します。 3.プレースホルダーと必要な屬性を使用して、フォームフィリングの効率と精度を改善しますが、プレースホルダーがラベルを置き換えることはできないことに注意してください。

Javaビルドツールの比較:Maven vs. Gradle Javaビルドツールの比較:Maven vs. Gradle Aug 03, 2025 pm 01:36 PM

gradleisthebetterchoiceformostnewprojectoitssuperorfficability、performance、andmoderntoolingsupport.1.gradle’sgroovy/kotlindslismoreconciseandexpressiveethanmaven’sverboseml.2.gradleorformsmavenbenbumebutedwitedwitedwitedspedexは

説明された延期聲明の例で進(jìn)みます 説明された延期聲明の例で進(jìn)みます Aug 02, 2025 am 06:26 AM

Deferは、クリーニングリソースなど、関數(shù)が戻る前に指定された操作を?qū)g行するために使用されます。パラメーターは、延期時(shí)にすぐに評(píng)価され、関數(shù)は最後のファーストアウト(LIFO)の順に実行されます。 1.複數(shù)の債務(wù)は、宣言の逆の順序で実行されます。 2.ファイルの閉鎖などの安全なクリーニングに一般的に使用されます。 3。指定された返品値を変更できます。 4.回復(fù)に適したパニックが発生した場(chǎng)合でも実行されます。 5。リソースの漏れを防ぐために、ループで延期の亂用を避けます。正しい使用により、コードのセキュリティと読みやすさが向上します。

See all articles