Java/javadrive

Last-modified: 2010-10-22 (金) 15:31:12

ラッパークラス

 booleanをBooleanにしたようにしたものをラッパークラスと呼び、便利な関数が揃えられている。

 本来は、
  Integer oi = new Integer(84);
 のようにして、ラッパークラスに値を代入する必要があったが、
 J2SE5.0以降では

  Integer oi = 84;

 のように直接代入することができるようになった。
 オートボクシング(Autoboxing)と言う機能である。

ArrayListに関して

 以前は、Arraylistを以下のように宣言していた。
  ArrayList 変数名 = new ArrayList();

 J2SE5.0以降は下記のように作成する。

 ArrayList<型> 変数名 = new ArrayList<型>();

 ArrayListに要素を追加するときは、省略記法が使える。

 ArrayList<String> array = new ArrayList<String>();

 array.add("日本");
 array.add("ブラジル");
 array.add("イングランド");

   ↑array.add(new String("日本"));と書いたのと同等

  array.add(10);

   ↑array.add(new Integer(10));と書いたのと同等

 これは、J2SE5.0から導入されたオートボクシング機能である。

 ArrayListの要素数はsize();メソッドで取得する。

LinkedListに関して

 LinkedListはArrayListと似ているが、中に含まれる要素がどのように並んでいるかを別に管理しているため、
 要素を追加したり削除したりする場合にArrayListと比較して高速に動作する。

 逆に要素を検索しようとする場合は先頭から順にリンクをたどって検索するためArrayListと比較して遅くなる

 基本的な使い方はArrayListとほとんど同じ
 ただし、offerとpollというメソッドがあり、エンキュー、デキューに対応。

HashMapに関して

 HashMapというコレクションもあるが、これは連想配列

  HashMap<Integer,String> map = new HashMap<Integer,String>();

 ↑Integerがキーで、Stringが格納する要素の型となる。
  getメソッドで引数にキーを指定すると、格納されている要素が返される。

Javaでもfor eachに相当する文が存在する

 int data[] = {85, 72, 89};

 for (int seiseki: data){
  System.out.println(seiseki);
 }

  ↑のように、':'でdataの要素をseikaiに追加することができる

JavaでもCと同じように配列をreturnすることが可能

 このとき、関数定義は次のようにする。

 private static int[] test(){

可変引数

 JavaではJ2SE5.0のバージョンから新しく可変個の引数を持つメソッドを
 定義できるようになった。

 private static void disp( int... num ){

 のように、"..."を用いて可変であることを表す。

 可変の引数numは、配列とまったく同様に扱われる。

 たとえば、上記のメソッドを

 disp( 10, 7, 8 ); 

 のように呼び出すと、

 num[0]=10;
 num[1]= 7;
 num[2]= 8;

 というように、値が代入される。

 ※1 可変引数では、引数がなくてもOK
 ※2 可変引数では、引数の数は任意だが、データ型が同一である必要がある
 ※3 private static void disp(String sb, String sa, int... num){
    のように、可変でない引数と組み合わせることも可能。ただし、可変引数を最後に記述する必要がある
 ※4 可変引数は、メソッド内で1つしか記述できない

数値の文字列化の方法

 1.数値のラッパークラス側から

  int i = 84;
  Integer oi = new Integer(i);
  String str = oi.toString();

 2.文字列クラス側から

  int i = 84;
  String str = String.valueOf(i);

 3.文字列の連結を使って

  String str = "" + 84;

Javaでは正規表現を用いることが可能

 http://www.javadrive.jp/regex/