Java では、コレクションと「データ構造」の違いがわかりません。コレクションはリスト、セット、マップ、キューを指し、「データ構造」は配列、リンクリスト、ツリーなどのコレクションを実装するために使用されるデータ構造を指すようです。たとえば、ArrayList と LinkedList はどちらもコレクションですが、データ構造はそれぞれ配列と連結リストです。私は正しいですか、それとも用語を混乱させていますか?
3 に答える
データ構造は、メモリ内のストレージ内でデータがどのように表現されるかです。コレクションは、アクセス方法です。私は「できる」という言葉を強調します。
LinkedList にデータを格納して並べ替えると、パフォーマンスが低下します。ArrayList を使用すると、同じアルゴリズムでパフォーマンスが向上します。メモリ内での表現方法を変更するだけで、さまざまな要因が改善されます。
コレクション表現を使用してアクセスすることができます。また、「インデックス」を使用してデータにアクセスすることもできます。getFirst、getNext、getPrev にも「できます」。
あなたの混乱は、内部ストレージとストレージへのアクセスの間です。2を切り離します。
データ構造は、ある種のデータを表すオブジェクトの総称であるため、連結リスト、配列などはすべてデータ構造です。Java の意味でのコレクションは、インターフェースを実装するすべてのクラスを指しCollection
ます。一般的な意味でのコレクションは、単なるオブジェクトのグループです。
データ構造には、ある種のスキーマの概念があります。たとえば、家の表現は、面積、寝室などをリストします。それは通常、そこで意味されていることです。ドメインの構造はデータとしてどのように表現されるのでしょうか?
コレクションは、Jeff が言うように、単なるオブジェクトのセットです。コレクションには構造がありますが、それらの構造は、ツリー、リスト、LinkedList など、単に組織的なものです。