Java 6のNavigableSetとNavigableMapの操作方法

最新のJava 6のCollection APIを使用して、セットおよびMapコレクションをナビゲートすることができます。これらのAPIは、コレクションから必要な結果を見つけるための柔軟性を提供します。

1. NavigableMapの例

package com.example.collection;

import java.util.NavigableMap;
import java.util.TreeMap;

public class NavigableMapDemo {

  public static void main(String[]args) {

    NavigableMap<String,Integer> navigableMap=new TreeMap<String, Integer>();

    navigableMap.put("X", 500);
    navigableMap.put("B", 600);
    navigableMap.put("A", 700);
    navigableMap.put("T", 800);
    navigableMap.put("Y", 900);
    navigableMap.put("Z", 200);

    System.out.printf("Descending Set  : %s%n",navigableMap.descendingKeySet());

    System.out.printf("Floor Entry  : %s%n",navigableMap.floorEntry("L"));

    System.out.printf("First Entry  : %s%n",navigableMap.firstEntry());

    System.out.printf("Last Key : %s%n",navigableMap.lastKey());

    System.out.printf("First Key : %s%n",navigableMap.firstKey());

    System.out.printf("Original Map : %s%n",navigableMap);

    System.out.printf("Reverse Map : %s%n",navigableMap.descendingMap());

  }

}

出力

Descending Set  :[Z, Y, X, T, B, A]Floor Entry  : B=600
First Entry  : A=700
Last Key : Z
First Key : A
Original Map : {A=700, B=600, T=800, X=500, Y=900, Z=200}
Reverse Map : {Z=200, Y=900, X=500, T=800, B=600, A=700}

2. NavigableSetの例

package com.example.collection;

import java.util.Arrays;
import java.util.Iterator;
import java.util.NavigableSet;
import java.util.TreeSet;

public class NavigableSetDemo {

  public static void main(String[]args) {

    NavigableSet<String> navigableSet = new TreeSet<String>(Arrays.asList(
            "X", "B", "A", "Z", "T"));

    Iterator<String> iterator = navigableSet.descendingIterator();

    System.out.println("Original Set :");
    while (iterator.hasNext()) {
        System.out.println(iterator.next());
    }

    iterator = navigableSet.iterator();

    System.out.println("Sorted Navigable Set :");

    while (iterator.hasNext()) {
        System.out.println(iterator.next());
    }

    System.out.printf("Head Set : %s.%n", navigableSet.headSet("X"));

    System.out.printf("Tail Set : %s.%n", navigableSet.tailSet("T", false));

    System.out.printf("Sub Set : %s.%n",
            navigableSet.subSet("B", true, "X", true));

    System.out.printf("Last Element : %s%n", navigableSet.last());

    System.out.printf("First Element : %s%n", navigableSet.first());

    System.out.printf("Reverse Set : %s%n", navigableSet.descendingSet());

    System.out.printf("Original Set : %s%n", navigableSet);

  }

}

出力

Original Set :
Z
X
T
B
A
Sorted Navigable Set :
A
B
T
X
Z
Head Set :[A, B, T].
Tail Set :[X, Z].
Sub Set :[B, T, X].
Last Element : Z
First Element : A
Reverse Set :[Z, X, T, B, A]Original Set :[A, B, T, X, Z]....

=== ソースコードをダウンロードする

ダウンロードする - リンク://wp-content/uploads/2012/07/Navigable-Collection.zip[Navigable-Collection-Example.zip](1kb)

=== 参考文献

.  http://docs.oracle.com/javase/6/docs/api/java/util/NavigableMap.html[NavigableMap

JavaDoc]。 http://docs.oracle.com/javase/6/docs/api/java/util/NavigableSet.html[NavigableSet

JavaDoc]

link://タグ/java/[java]リンク://タグ/java6/[java6]