• 締切済み

Objective-Cでのスタックについて

Javaでは public Stack() で簡単にスタックを実装できますが、Objective-Cではどのように実装すれば良いのでしょうか? 出来る限り簡単に実装できると良いのですが・・・。 ■参考 Stack (Java Platform SE 6) http://docs.oracle.com/javase/jp/6/api/java/util/Stack.html

みんなの回答

  • harawo
  • ベストアンサー率58% (3742/6450)
回答No.4

JavaとObjective-Cは、異なる言語なんですね。 母親から弟が、「おにいちゃんは、こうだった。おにいちゃんなら、こうしているよ。」と言われ続けたら、まちがいなくぐれますね。 No.1回答者の紹介リンクにあるとおり、NSMutableArrayで、ほぼやりたいことはできてしまうと思いますけど。「ほぼできる」じゃいやなら、Javaをやってればどうですか?

YUI-net
質問者

お礼

>母親から弟が、「おにいちゃんは、こうだった。おにいちゃんなら、こうしているよ。」と言われ続けたら、まちがいなくぐれますね。 全く的外れな回答、ありがとうございました。

  • mk48a
  • ベストアンサー率56% (1133/2007)
回答No.3

Objective-Cの標準ライブラリにはStackは無いので、JAVAのように1行で記述することはできません。 #1さんの回答でダメなら方法は無いのでは? 実装=コードを書く ことだと思うのですが。 と、いうか数行のコードも書けないとは「残念」ですね。

YUI-net
質問者

お礼

>と、いうか数行のコードも書けないとは「残念」ですね。 書けないなんて言ってないんですけどね。 わざわざありがとうございました。

  • Tacosan
  • ベストアンサー率23% (3656/15482)
回答No.2

確認ですが, あなたは何を期待しているのでしょうか? 普通「実装」とは「ある機能をプログラムで記述すること」を指します. そして, #1 の回答に示されているものは スタックの機能を Objective-C で書いた という点において「Objective-C で実装する」というあなたの希望を満たしています. その限りにおいて「残念」という表現は「あなたの質問」を読む限りほぼあり得ないはずです. もちろんあなた自身が「あれより『簡単に』実装できる」と自信を持っているのであれば「残念」も理解できますが, もしそうならそもそもこの質問自体があり得ません.

YUI-net
質問者

お礼

Javaの様に簡単にできる方法を期待していると質問に書いたと思いますが...。 #1で頂いた情報は既知のものであったため、せっかく回答して頂いたのに私にとって有用ではなかったという意味で「残念」でした。

  • chie65535
  • ベストアンサー率43% (8522/19371)
回答No.1
YUI-net
質問者

お礼

残念ですが、ご紹介頂いたWebページは既に拝見したものでした。 早々にありがとうございました。

関連するQ&A

  • ArrayListのパッケージがlistでない理由

    ・パッケージについて教えてください ■質問1 ・ArrayListのパッケージは、どうして「java.util.List」ではなくて「java.util.ArrayList」なのでしょうか? ・ArrayListは、Listインターフェイス実装クラスなのでListに紐付いている、と思ったのですが… ・「java/util/List.interface」と「java/util/ArrayList.class」は並列の位置づけになるのでしょうか? ・そういう決まりだから? ・Listインターフェイスのパッケージ名は下記で確認するのでしょうか? ・http://docs.oracle.com/javase/jp/7/api/java/util/List.html ■質問2 ・「import java.util.*;」表記ができるなら、全部これで良いようにも思うのですが、どういう風に使い分けるのでしょうか? ・普通はどちらを使う、とかあるのでしょうか?

    • ベストアンサー
    • Java
  • elementAt()とget()の違い

    JavaのVectorでの話です。 この2つのメソッドについての違いを教えて欲しいです。 http://docs.oracle.com/javase/jp/1.4/api/java/util/Vector.html によると elementAt(int index) 指定されたインデックスの要素を返します。 get(int index) Vector 内の指定された位置にある要素を返します。 なのですが、今私が作っているプログラムでは、どちらでも正常に動きました。 調べてみると「ほぼ同じ実装」などと見かけます。もし同じなら、どうして役割の同じメソッドが存在しているのかも教えていただけると嬉しいです。

    • ベストアンサー
    • Java
  • ArrayListはListのデフォルト実装とは?

    「ArrayListはListのデフォルト実装」と書いてあるのですが、どういう意味でしょうか? http://topickup.web.fc2.com/java/list_arraylist.html ■自分の理解 ・List … インターフェイス ・ArrayList … インターフェイスを実装するクラスの中の一つ。どの実装クラスを利用するかはユーザーが選択? ■疑問点 ・Listインターフェイスのリファレンスに、デフォルト実装について明記されているかと思ったのですが、見つかりません ・どこかに書いているのでしょうか? http://docs.oracle.com/javase/jp/7/api/java/util/List.html ・検索したら、似た言葉で「デフォルトメソッド」があるのですが、「デフォルト実装」と同じ意味でしょうか? ・「デフォルトメソッド」はJava8の新機能? Java7以下では使えない?

    • ベストアンサー
    • Java
  • ArrayList でスタックを

    初歩的でツマラナイかもしれません。 import java.util.ArrayList; でスタックを実現するクラス"MyStack"を書きました。 フィールドは private ArrayList<Integer> stack = new ArrayList<Integer>(); のみという条件です。 MyStack.java - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - import java.util.ArrayList; public class MyStack {   private ArrayList<Integer> stack = new ArrayList<Integer>();      // データを先頭に追加   public void push( int item ) {     stack.add( item );   }   // 先頭のデータを取り出す   public int pop( ) {     int rtn;     if( stack.isEmpty() ) {       System.out.println( "スタックは空です." );       System.exit( 1 );     }          rtn = stack.get( 0 );     stack.remove( 0 );     return rtn;   } } このMyStackを実行するクラス"MainForMyStack"を書きます。 実行結果は、標準出力に 43210 と出ることを想定しています。 MainForMyStack.java - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - import java.util.ArrayList; public class MainForMyStack {   public static void main(String[] args) {     MyStack stack = new MyStack();     // 0,1,2,3,4 をスタックに追加     for( int i=0; i < 5; i++ ) {       stack.push( i );     }     // スタックのデータを先頭から取り出す     for( int i=0; i < stack.size(); i++ ) {       System.out.print( stack.pop() );     }   } } さて、MainForMyStack.java の i < stack.size(); の箇所でエラーが出るのはなぜでしょう? どなたかご教授の方お願いします。

    • ベストアンサー
    • Java
  • ファイル操作時のclose処理の失敗とは?

    ファイル操作時のclose処理の失敗とは? とりあえず具体的な例を挙げますとFileOutputStreamのclose時。 このときに発生する例外とはどんなケースだろう、 例外が発生したときにはどんな対処をすべきだろうと考えましたが、 発生しうるケースが分かりませんでしたし、 catchに記述すべき処理がわかりませんでした。 JavaDocには以下のように記述されています。 「IOException - 入出力エラーが発生した場合」 意味が分かりません…。考えるのが面倒なので手抜を抜いた感があります。 FileOutputStream (Java 2 プラットフォーム SE v1.4.0) http://java.sun.com/j2se/1.4/ja/docs/ja/api/java/io/FileOutputStream.html FileOutputStream (Java 2 Platform SE 5.0) http://java.sun.com/j2se/1.5.0/ja/docs/ja/api/java/io/FileOutputStream.html FileOutputStream (Java Platform SE 6) http://java.sun.com/javase/ja/6/docs/ja/api/java/io/FileOutputStream.html バッファ書込みをするクラスの場合には、ディスクの容量が足りなくて close処理時に書込みが失敗して例外発生、ということは 十分にありうると思います。しかしFileOutputStreamでは関係ありません。 デバッガで、途中で処理を止めclose前に処理を終了させてしまっても 問題は生じませんでした(WindowsXP上では)。 質問は以下です。 ・ファイル出力処理のclose時に例外が発生するのはどのような環境・ケースか ・例外が発生した場合にはどんな処理をすべきか(ログ出力以外で) よろしくお願いします。

    • ベストアンサー
    • Java
  • publicがprotectedになった場合のプログラム修正

    JDK1.4から1.3にバージョンを落とす事になったのですが、java.util.Calendar.getTimeInMillisが publicでなくprotectedでした。 http://java.sun.com/j2se/1.3/ja/docs/ja/api/java/util/Calendar.html#getTimeInMillis() したがって、他のパッケージからのアクセスできなくなってしまったのですが、こういう場合どのように対処すれば良いでしょうか?

    • ベストアンサー
    • Java
  • APIのページ

    お世話になります。 Javaには「Java 2 Platform Standard Edition 5.0 API 仕様(http://java.sun.com/j2se/1.5.0/ja/docs/ja/api/index.html)」 PHPには「PHPマニュアル(http://jp.php.net/manual/ja/index.php)」というように、公式(?)のようなAPIのページがありますが、 perlにはそのようなオンラインで参照できるページはないのでしょうか。 関数を探す際等に利用できるページを探しているのですが、見つかりません。 ご存知の方がいらっしゃったらどうかお教えいただけないでしょうか。

    • ベストアンサー
    • Perl
  • 「SimpleEntry を型に解決できません。」とエラーが出て悩んでます

    Eclipseでこのプログラムを実行しましたが, http://d.hatena.ne.jp/nowokay/20080707#1215460276 「SimpleEntry を型に解決できません。」 とエラーをはきます。 javaのバージョン違いかと思い,コマンドウィンドウを開いて,  java -version としましたが,version1.6.0_02 でSimpleEntryについて調べましたが, version1.6から採用しているらしく(http://java.sun.com/javase/ja/6/docs/ja/api/java/util/AbstractMap.SimpleEntry.html) 問題はない気がするのですが,何が原因なのかわかりません。 とにかくこのサイトのプログラムを一度実行してみたいです。 解決策を教えてください

  • JavaのAPIについて

    Java Speech APIというのを使ってみたいのですが、どのバージョンのJ2SEをダウンロードしてみても入っていません。APIは自分で追加できるのでしょうか。また、どのようにするのでしょうか。 ●リファレンス http://java.sun.com/reference/api/index.html ●Java Speech API http://java.sun.com/products/java-media/speech/ ●パッケージ http://java.sun.com/products/java-media/speech/forDevelopers/jsapi-doc/index.html

    • ベストアンサー
    • Java
  • Javaについて

    Firefoxを使用しているのですが Java SE 6.0u1 (J2SE6.0.01) に付属していた Java Console 拡張機能は Firefox と互換性がありません (詳細)。Java の動作には支障ありませんが、[ツール] メニューの [Java Console] は利用できません。この問題は、Java の Web サイト から入手可能な Java SE 6.0u2 (J2SE6.0.02) で修正されています。 このJava SE 6.0u2がhttp://java.sun.com/javase/downloads/index.jspのどこにあるのか分かりません 良ければ教えて頂けると嬉しいです・・・

専門家に質問してみよう