• ベストアンサー

Javaでデータ構造

ranxの回答

  • ranx
  • ベストアンサー率24% (357/1463)
回答No.2

話が抽象的すぎて、仰りたいことが今ひとつはっきりしないように思うのですが、 > 2分木みたいなデータ構造とそれに対する操作(Insert,Delete,Minimumなど) > をカプセル化して一つのオブジェクトとみなしてやるのかな?と思っていました。 > こう考えたら、抽象度が高くてヒトにやさしいプログラミングができそう…、 > と思ったので。 2分木の場合、各ノードはそれ自体2分木ですよね。そう考えればデータ構造全体に 対するメソッドも部分に対するメソッドもある意味で変わりはないわけで、その 違いを明確にしたいという主旨のご質問であれば、挙げた例が悪すぎるように 思います。 一般的には、単位的なデータも集合的なデータもそれぞれにオブジェクトとして 扱われると思います。「会社」というクラスと「社員」というクラスがあったと して、「会社」のインスタンスに対するリクエストを「会社」インスタンスは 「社員」へのリクエストに分解することで処理するでしょう。要はそういう話 だと思いますが...。

noname#4530
質問者

お礼

下の補足の欄で、 「質問してください。」→「指摘してください。」 に訂正します。 質問者は僕なのに、何か変ということで…

noname#4530
質問者

補足

ありがとうございました。 >話が抽象的すぎて、仰りたいことが今ひとつはっきりしないように思うのですが、 >一般的には、単位的なデータも集合的なデータもそれぞれにオブジェクトとして >扱われると思います。 >「会社」というクラスと「社員」というクラスがあったと >して、「会社」のインスタンスに対するリクエストを「会社」インスタンスは >「社員」へのリクエストに分解することで処理するでしょう。要はそういう話 >だと思いますが...。 ええと、ぼくが言いたかったのは、集合的なデータもオブジェクトとして 扱えたら良いんじゃないのかな…というモノでした。(分かりやすい表現をお借りします。) ところで、この、「会社」と「社員」の例の、「会社」にあたるクラスを、Javaでは定義できるんでしょうか?No.1の方の回答からすると、出来ないという事になると思うのですが、 >一般的には、単位的なデータも集合的なデータもそれぞれにオブジェクトとして >扱われると思います。 この文章を見ると少し迷ってしまいます。要は、Javaでクラスとして厳密に定義はできないが、プログラマーはみんなクラスのインスタンスと見なしている(ポインタが必要なデータ構造を)、と言うことであっていますでしょうか? ぼくは、考えていることを言葉に表現するのが余り得意ではないので、曖昧なところがあるかもしれません。そのときは質問してください。よろしくおねがいします。

関連するQ&A

  • Javaの習得に向けたグラフィックスについて

    Javaの習得に向けて学習する場合、ひとえにオブジェクトがどういう風なものなのかを習得するということが主眼になると思います。クラス,メソッド,クラスの継承とか,クラス間での変数のスコープ(これは全言語で共通の学習)とかです。ファイル入出力、ループ、分岐なども全言語共通的なので翻訳可能であり、学習の対象ですらないもののように思えます。 しかし、グラフィカル(GUIを生成して、ブラウザで見せたりする)なところになると急激に視界不良のような印象になります。長い名前のコマンドでイベントリスナーとかフレームとかのオブジェクトとかラジオボタンをペタペタ貼り付けるとかです。それらのグラフィックスの機能というのは、Java独特のクラスとかオブジェクトの学習と関連しているのかどうかわかりにくくなる印象を持ちます。Javaの学習とあのグラフィックスは切り離して考えるのか、それともJavaの学習の結果その応用としてグラフィックス関係の処理が出てくるのか不明な感じになります。もし後者なら学習した内容に照らし合わせた機能と考えて納得させる必要がありますが、前者ならあんまり気にしないでブラックボックスとして処理するということになりそうです。Javaのグラフィックスはどのように理解して学習すればいいのでしょうか。 例えばVisual BasicなどはオブジェクトをGUI的に作ってウィンドウ上に貼り付けてその機能をコード化するということになるので、もう少しわかりやすいというか整理して(分業というか)して処理できそうですが、Javaは全部コード化するので理解しにくい印象があります。たとえばコードがあってその横にグラフィックスが示されているなら、もう少しマシなのですが。Javaの入門書では全くグラフィックスに触れないものあり、それだと通読しやすいです。グラフィックスが出てくると急激に歩みが遅くなるのですが。考え方について教えて頂きたいと思います。 よろしくお願いします。

  • 入門書の次に読ませたい本

    プログラムを作成しようとしたら、一応作成する事が出来る。 入門書を一通り読んで簡単なプログラムを組んだりした事がある。 そんな初心者から中級者に向かいたい人向けの解説書を探しています。 プログラミングを行うにあたって覚えていて損は無い基本的なアルゴリズムや プログラムを組み立てる際の考え方やデータ構造について等 そういう知識を学習したい人向けの本でおすすめがあったら教えてください。 その本でメインとして扱っている言語はC言語系統かJavaがいいと思っていますが、 良い本であればそれ以外の言語でもかまいませんので、 よろしくお願いします。

  • Javaの本、教えてください。

    Javaの本、教えてください。 夏休み中にJavaを一通り出来るようにしないといけません。(ソフトウウェア製作の為) 一応、アマゾンで「明解Java入門編」「わかりやすいJava入門編」 「やさしいJava」「はじめてのJava」あたりがいいと考えています。 が、Java アブレットではないので上記の本がそれに当たらないか心配です。 私はC言語・Perlが一通り出来る程度です。 上記の4冊の中でいい本ありますか?また、上記の本以外でもかまいません。 ご存じの方がいましたら、教えていただけると助かります。 よろしくお願いします。

    • ベストアンサー
    • Java
  • Javaの勉強順序

    なかなかプログラミングのコツがつかめません。 そもそもプログラミング的な考えができないんですかね。 現在はJavaの基礎文法を一通り終えて、今後の学習をどう進めようか、というところなんですが、デザインパターンを学習するべきか、逆引きライブラリのような本をみてよく使うクラスなどに習熟すべきか、アルゴリズムとデータ構造などをかじって一回り血肉をつけるか、というふうに悩んでいます。  趣味で何か作りたい、という動機はなく、一日でもはやく現場での業務用プログラムを読み書きできるようになりたいです。皆さんはどのように力をつけていきましたか?アドバイスがあればきかせてください。

    • ベストアンサー
    • Java
  • Cの構造体のデータのbyte配列をjavaのclassに入れるには

    サーバーからCの構造体のデータをbyte配列で受け取ったものをjavaのclassに入れるにはどうすればよいでしょうか? クライアントプログラムがCなら受け取ったデータをそのまま構造体にコピーすれば終わりなのですが(サーバーもクライアントもx86なのでendianを気にする必要が無い)、java で簡単に書く方法が分からないので、今はbyte配列から1バイトづつ読みだして、classのメンバーに代入しています。もっとスマートな書き方はないでしょうか?

  • データ構造とアルゴリズムの違いについて教えて頂けないでしょうか。

    データ構造とアルゴリズムの違いについて教えて頂けないでしょうか。 データ構造とアルゴリズムについて学習しています。 (質問事項) ・データ構造とアルゴリズムの違いについて教えて頂けないでしょうか。 詳細に教えて頂けると大変助かります。 (私の現状) たとえば、データ構造は、単純なものでは、配列やコレクション、2分木などの構造で、アルゴリズムは2分木探索の実装方法だと思っています。 データ構造とアルゴリズムについては初心者です。 (現在、就職活動中で、これらを学ぶ必要がありご質問させて頂いています) どうか、皆様、教えて頂いた情報を最大限に活用させていただきますので、(皆様にとってはくだらない質問かもしれませんが…)どうぞよろしくお願いいたします。

  • javaのステップアップ

     java初心者です。「やさしいJava」を読み終えたところなのですが、今後どのようなプログラムを組めば良いのか少し悩んでいます。  いちおう、アルゴリズムとデータ構造などを勉強しているのですが、具体的にそれらを組み込めるようなプログラムがイメージできないのです。初心者→中級者となって行く過程で、みなさんはどのようなプログラムを書いてこられたのでしょうか?  また、javaのAPIなども勉強したいと思っているのですが、これらを組み込むようなプログラムもまた、さっぱり検討がつきません。よろしければお聞かせください。

    • ベストアンサー
    • Java
  • 古いJava入門書の有効性について

    古いJavaの入門書は現在でも有効でしょうか? Javaの勉強を始めようと思っています。 Androidアプリを作ってみたいなと思っています。 そのための入門書を探しているのですが、縁あって英語版のHead First Javaと Android Programming: The Big Nerd RanchGuideを入手しました。 共にamazonなどの評価も高く、英語に手こずるかもしれませんが取り組んでみようと思います。 ただ、一つ心配しているのがHead First Javaは出版が10年位前で 明らかに最新のJavaについての記述ではないという点です。 Javaの言語の基礎としてはこれでも問題ないでしょうか? 例えば、文法が大きく変わっていたり現在ではよく使われている機能がJavaに 追加されたりしていますでしょうか? また、Head First Javaが現在では適切な入門書でないなら 現在お勧めの入門書とその理由を教えて下さい。 私の実力はPythonでオブジェクト指向をあまり使わない簡単なプログラムが書ける程度です。 よろしくお願いします。

    • ベストアンサー
    • Java
  • JAVAサーブレットの勉強手こずってます

    一通りJAVA入門書で勉強した後、JSPとサーブレットの学習本を購入したのですが、サーブレットがよく分かりません。 パッケージのクラスを利用する為にnewする必要があるみたいですが…。 なぜnewする必要があるのでしょうか

  • フロッピーディスクのデータ構造を教えてください。

    OS自作入門という本を読んで自作のプログラムを フロッピーのブートセクタに書き込んで実行する、 ということをやっています。 この本にはフロッピーのデータ構造については 記述がありませんでした。ご存知のかた、おしえて ください。