スポンサーサイト

  • 2013.11.08 Friday
  • -
  • -
  • -
  • by スポンサードリンク

一定期間更新がないため広告を表示しています


マップ(TreeMap)

TreeMap も HashMap と同じように使用できます。要素がキーによって自動的にソートされる点が HashMap と異なります。

§TreeMapTest.java
import java.util.*;

class TreeMapTest {
public static void main(String[] args) {
TreeMap map = new TreeMap();
map.put("Name", "Tanaka");
map.put("Age", new Integer(26));
Iterator it = map.keySet().iterator();
while (it.hasNext()) {
Object o = it.next();
System.out.println(o + " = " + map.get(o));
}
}
}


マップ(HashMap)

HashMap は、名前(キー)と値の組み合わせを要素として持つ配列です。

§HashMapTest.java
import java.util.*;

class HashMapTest {
public static void main(String[] args) {
HashMap map = new HashMap();
map.put("Name", "Tanaka");
map.put("Age", new Integer(26));
System.out.println("Name = " + map.get("Name"));
System.out.println("Age = " + map.get("Age"));
}
}

C:¥java>java HashMapTest
Name = Tanaka
Age = 26

すべての要素を参照するには下記のようにします。

Iterator it = map.keySet().iterator();
while (it.hasNext()) {
Object o = it.next();
System.out.println(o + " = " + map.get(o));
}


セット(TreeSet)

TreeSet も HashSet と同じように使用できます。要素が自動的にソートされる点が HashSet と異なります。

§HashSetTest.java
import java.util.*;

class TreeSetTest {
public static void main(String[] args) {
TreeSet set = new TreeSet();
set.add("CCC");
set.add("AAA");
set.add("BBB");
set.add("AAA");
Iterator it = set.iterator();
while (it.hasNext()) {
System.out.println(it.next());
}
}
}

C:¥java>java TreeSetTest
AAA
BBB
CCC


セット(HashSet)

HashSet も配列を扱いますが、要素の重複が許されない、順序の保障が無い点が ArrayList や LinkedList と異なります。要素を参照する際には Iterator を用います。

§HashSetTest.java
import java.util.*;

class HashSetTest {
public static void main(String[] args) {
HashSet set = new HashSet();
set.add("AAA");
set.add("BBB");
set.add("CCC");
set.add("AAA");
Iterator it = set.iterator();
while (it.hasNext()) {
System.out.println(it.next());
}
}
}

実行結果は下記のようになります。AAA を 2回 add() していますが、重複要素がひとつにマージされます。結果の順序は add() した順序に関係なくバラバラになります。

C:¥java>java HashSetTest
CCC
AAA
BBB

下記などのメソッドが用意されています。

set.add(o) - オブジェクト o を配列の末尾に追加する
set.clear() - 配列をクリアする
set.contains(o) - オブジェクト o と等しい要素があるか調べる
set.isEmpty() - 空かどうか調べる
set.remove(o) - オブジェクト o にマッチする要素を削除する
set.size() - 要素の個数を得る

リスト(Vector)

Vector クラスも ArrayList や LinkedList と同じように扱うことができますが、パフォーマンスが悪いため、現在ではあまり推奨されていません。

リスト(LinkedList)

LinkedList も ArrayList と同じように使用することができます。挿入や削除を頻繁に行う場合は ArrayList よりも LinkedList の方が高速です。ただし、get() による参照は ArrayList の方が高速です。

§LinkedListTest.java
import java.util.*;

class LinkedListTest {
public static void main(String[] args) {
LinkedList list = new LinkedList();
list.add("AAA");
list.add("BBB");
list.add("CCC");
for (int i = 0; i < list.size(); i++) {
System.out.println(list.get(i));
}
}
}


リスト(ArrayList)

ArrayList は配列を扱う一般的なクラスです。

§ArrayListTest.java
import java.util.*;

class ArrayListTest {
public static void main(String[] args) {
ArrayList list = new ArrayList();
list.add("AAA");
list.add("BBB");
list.add("CCC");
for (int i = 0; i < list.size(); i++) {
System.out.println(list.get(i));
}
}
}

下記などのメソッドが用意されています。

list.add(o) - オブジェクト o を配列の末尾に追加する
list.add(n, o) - オブジェクトを n で指定した場所に追加する
list.get(n) - n番目の要素を得る
list.remove(n) - n番目の要素を削除する
list.set(n, o) - n番目の要素をオブジェクト o で置き換える
list.size() - 要素の個数を得る
list.isEmpty() - 空かどうか調べる
list.indexOf(o) - オブジェクト o と等しい要素のインデックスを探す
list.contains(o) - オブジェクト o と等しい要素があるか調べる
list.addAll(list2) - 配列の末尾に配列 list2 を追加する

コレクション(リスト、セット)とマップ

コレクション(リスト、セット)や マップ は、オブジェクトの集合を扱うための仕組みです。


List系 ArrayList 配列を扱います。
LinkedList 配列を扱います。挿入・削除が高速です。
Vector 配列を扱います。パフォーマンスが悪いため現在ではあまり推奨されない古いクラスです。
Set系 HashSet 値の重複を許さない順不同の要素集合を扱います。
TreeSet 値の重複を許さないソートされたの要素集合を扱います。
Map系 HashMap キーと値の組からなる要素の集合を扱います。
TreeMap キーと値の組からなる要素の集合を扱います。キーでソートされています。

相互リンク
selected entries
categories
archives
profile
search this site.
others
mobile
qrcode
powered
無料ブログ作成サービス JUGEM
calendar
     12
3456789
10111213141516
17181920212223
24252627282930
31      
<< March 2024 >>
sponsored links