ArrayList の Beans

C:\TMP>java TestList
Message-3
全ArrayList
Message-1
Message-2
Message-4
 -- Press any key to exit (Input "c" to continue) --

Beans で作成した ArrayList の Object Class です。
Beans に package を使います。

前田稔の超初心者のプログラム入門

プログラムの作成

  1. ArrayList は、配列に比べてサイズの制限も無く、「追加/挿入/削除」が簡単です。
    そこで ArrayList の Object Class を Beans の仕様に合わせて作成してみました。
    ArrayList の説明は「超初心者のプログラム入門(Java)/ArrayList で String を使う」を参照して下さい。
    メモ帳などでタイプして listbean.java の名前で保存して下さい。
    //★ ArrayList の Beans    前田 稔
    package mybean;
    
    import java.util.*;
    import java.io.Serializable;
    
    public class listbean implements Serializable
    {   private ArrayList   list;
        private String  str;
    
        // Constructor
        public listbean()
        {   list= new ArrayList();  }
    
        // Get, Set Method
        public void setStr(String m)
        {   this.str= m;
            this.list.add(m);
        }
        public String getStr()
        {   int i;
            i= list.size();
            if (i<=0)   return null;
            this.str= this.list.get(i-1);
            this.list.remove(i-1);
            return this.str;
        }
        public ArrayList getList()
        {   return this.list;  }
    }
    
  2. listbean.java を呼び出す Main Program です。
    メモ帳などでタイプして TestList.java の名前で保存して下さい。
    //★ ArrayList Beans Test    前田 稔
    //   javac mybean\listbean.java
    import java.util.*;
    
    public class TestList
    {   public static void main(String args[])
        {   mybean.listbean cls= new mybean.listbean();
    
            cls.setStr("Message-1");
            cls.setStr("Message-2");
            cls.setStr("Message-3");
            System.out.println(cls.getStr());
            cls.setStr("Message-4");
    
            System.out.println("全ArrayList");
            ArrayList   list= cls.getList();
            for(int i=0; i<list.size(); i++)
            {   System.out.println(list.get(i));  }
        }
    }
    
  3. listbean.java では package を使っています。
    package の説明は「超初心者のプログラム入門(Java)/Package でフォルダーを分ける」を参照して下さい。
    TestList.java をフォルダー(例えば C:\TMP)に格納して下さい。
    そのフォルダーの下位に mybean のフォルダーを作成して listbean.java を格納して下さい。
    C:\TMP をカレントにして listbean.java をコンパイルして下さい。
    main() が定義されていないのでエラーが表示されますが、無視して下さい。
    C:\Users>CD C:\TMP
    C:\TMP>javac mybean\listbean.java
    Exception in thread "main" java.lang.NoSuchMethodError: main
    -- Press any key to exit (Input "c" to continue) --
  4. TestList.java をコンパイルしてエラーが無ければ実行します。
    C:\Users>CD C:\TMP
    C:\TMP>javac TestList.java
    C:\TMP>java TestList
    

プログラムの説明

  1. Beans はネットワークプログラムで使われることが多いのですが Console Mode でも使われます。
    listbean.java では package mybean; を設定しています。
    Constructor では ArrayList を初期化します。
    public class listbean implements Serializable
    {   private ArrayList   list;
    
        // Constructor
        public listbean()
        {   list= new ArrayList();  }
    
  2. setStr() は ArrayList に String を追加するメソッドです。
    getStr() は ArrayList から最後に登録された String を取り出すメソッドです。
    取り出された String は ArrayList から削除されます。
    getList() は ArrayList を return するメソッドです。
        public void setStr(String m)
        {   this.str= m;
            this.list.add(m);
        }
        public String getStr()
        {   int i;
            i= list.size();
            if (i<=0)   return null;
            this.str= this.list.get(i-1);
            this.list.remove(i-1);
            return this.str;
        }
        public ArrayList getList()
        {   return this.list;  }
    
  3. TestList.java では setStr() メソッドで3件の String を登録します。
    次に getStr() で、最後に登録された String を取り出します。
    そして "Message-4" を追加登録した後で、ArrayList に登録されている、全String を印字します。
            cls.setStr("Message-1");
            cls.setStr("Message-2");
            cls.setStr("Message-3");
            System.out.println(cls.getStr());
            cls.setStr("Message-4");
    
            System.out.println("全ArrayList");
            ArrayList   list= cls.getList();
            for(int i=0; i<list.size(); i++)
            {   System.out.println(list.get(i));  }
    
    Message-3
    全ArrayList
    Message-1
    Message-2
    Message-4
    

超初心者のプログラム入門(Java2)