QUEUEを使ってみる
戻る
::::::::::::::
QueueTest1.java
::::::::::::::
import java.util.*;
import java.util.concurrent.*;
/**
$Id: queue.html,v 1.1 2009/06/22 16:12:21 kishi Exp kishi $
@author KISHI Yasuhiro
*/
public class QueueTest1 {
static public void main( String[] args ) {
ArrayBlockingQueue queue = new ArrayBlockingQueue( 5 );
for ( int i = 0;i < 10;i++ ) {
queue.add( new Integer( i ) );
Iterator iterator = queue.iterator();
while ( iterator.hasNext() ) {
System.out.print( iterator.next() );
}
System.out.println();
}
}
}
::::::::::::::
QueueTest2.java
::::::::::::::
import java.util.*;
import java.util.concurrent.*;
/**
$Id: queue.html,v 1.1 2009/06/22 16:12:21 kishi Exp kishi $
@author KISHI Yasuhiro
*/
public class QueueTest2 {
static public void main( String[] args ) {
ArrayBlockingQueue queue = new ArrayBlockingQueue( 5 );
for ( int i = 0;i < 10;i++ ) {
boolean status = queue.offer( new Integer( i ) );
System.out.println( "status=" + status );
System.out.print( "現在セットされている要素は、" );
Iterator iterator = queue.iterator();
while ( iterator.hasNext() ) {
System.out.print( iterator.next() );
}
System.out.println( " です。" );
}
}
}
::::::::::::::
QueueTest3.java
::::::::::::::
import java.util.*;
import java.util.concurrent.*;
/**
$Id: queue.html,v 1.1 2009/06/22 16:12:21 kishi Exp kishi $
@author KISHI Yasuhiro
*/
public class QueueTest3 {
static public void main( String[] args ) {
final int SIZE = 5;
ArrayBlockingQueue queue = new ArrayBlockingQueue( SIZE );
for ( int i = 0;i < 10;i++ ) {
if ( queue.size() == SIZE ) {
// 要素数が最大値に達したら先頭の要素を取り除く
try {
queue.take();
} catch ( Exception e ) {
e.printStackTrace();
}
}
// 要素を追加
boolean status = queue.offer( new Integer( i ) );
System.out.println( "status=" + status );
System.out.print( "現在セットされている要素は、" );
Iterator iterator = queue.iterator();
while ( iterator.hasNext() ) {
System.out.print( iterator.next() );
}
System.out.println( " です。" );
}
}
}
$ java QueueTest1
0
01
012
0123
01234
Exception in thread "main" java.lang.IllegalStateException: Queue full
at java.util.AbstractQueue.add(Unknown Source)
at QueueTest1.main(QueueTest1.java:16)
$ java QueueTest2
status=true
現在セットされている要素は、0 です。
status=true
現在セットされている要素は、01 です。
status=true
現在セットされている要素は、012 です。
status=true
現在セットされている要素は、0123 です。
status=true
現在セットされている要素は、01234 です。
status=false
現在セットされている要素は、01234 です。
status=false
現在セットされている要素は、01234 です。
status=false
現在セットされている要素は、01234 です。
status=false
現在セットされている要素は、01234 です。
status=false
現在セットされている要素は、01234 です。
$ java QueueTest3
status=true
現在セットされている要素は、0 です。
status=true
現在セットされている要素は、01 です。
status=true
現在セットされている要素は、012 です。
status=true
現在セットされている要素は、0123 です。
status=true
現在セットされている要素は、01234 です。
status=true
現在セットされている要素は、12345 です。
status=true
現在セットされている要素は、23456 です。
status=true
現在セットされている要素は、34567 です。
status=true
現在セットされている要素は、45678 です。
status=true
現在セットされている要素は、56789 です。
戻る