2

Eclipseやその他のIDEでコードのオートコンプリートをどのように実行しますか?その背後にある基本原則は何ですか?

4

2 に答える 2

3

Eclipse にインポートした非標準ライブラリにソース コードを明示的に添付する方法を知っていますか? これを行うと、テキスト検索インデックスがそのソース上に構築され、この方法で IDE はオートコンプリート機能を提供することを認識します。大まかに言えば、キーが入力したメソッドのプレフィックスで、値がそのメソッドの説明である連想配列のようなものだと思います。

この機能にとって重要なことは、時間とメモリ消費の両方に関して効率的に実装することです。いくつかのメソッドのすべての可能なプレフィックスに対して同じエントリを格納するのは非常に非効率的です。(または、すべてのプレフィックスを保存することもできます!)

この問題に適した興味深い構造の 1 つは Trie です。これは、許容できるメモリ使用量を維持しながら、プレフィックス検索用に本質的に最適化されています。

簡単な例については、こちらをご覧ください: http://www.sarathlakshman.com/2011/03/03/implementing-autocomplete-with-trie-data-structure/

于 2012-07-06T17:16:44.863 に答える
1

メソッド/変数の名前の先頭を既に入力している場合に使用されるTriesの他に、メソッドを呼び出そうとするとIDEが提案する場合に、ある種の型比較/分析も使用すると思いますそのメソッド呼び出しにパラメーターとして渡すローカル/グローバル変数。

于 2012-07-06T22:52:03.363 に答える