2017-12-04 3 views
0

Javaで配列やコレクションのいずれかを受け取るメソッドを作成したいのですが、それは問題ではありません。配列のリストを作成したくないのは、アルゴリズムのパフォーマンスに影響するため、リストを受け入れるすべてのメソッドに対して常にオーバーロードメソッドを作成することに疲れているからです。 "Iterable"などの両方に便利な親クラスがありますか?インスタンスがJavaの配列かコレクションかを確認します

+0

*アルゴリズムのパフォーマンスに影響するため、配列からリストを作成したくない*本当ですか?そんなに? –

+1

* "アルゴリズムのパフォーマンスに影響するため、配列からリストを作成したくありません" * - その後、呼び出し元に実行させる必要があります。あなたのAPIが 'Collection'を消費するようにしてください – MadProgrammer

+4

あなたは' Arrays.asList() 'で任意の参照配列をリストとして扱うことができます。非常に軽いラッパークラスです。 – shmosel

答えて

0

Arrays.asListメソッドを使用してリストに配列をラップする方法がわかりませんでした。配列にリストをコピーすると思っていました。 Arrays.asListはO(1)アルゴリズムです。コメントの善良な人々が私に言ったからです。

2

パフォーマンスが非常に重要であるため、ArrayListで配列をラップすることができない場合は、配列とコレクションに対して別々のアルゴリズムを記述する必要があります。それは本当に簡単です。

多形性の利点は、数マイクロ秒をトレードオフして短いコードを読むことができるという前提の上にあります。あなたがそれを余裕がない場合、あなたは利便性を持つことはできません。

関連する問題