解答例 - 実習課題1 - 2.バッファの操作
(実習課題1)
次の仕様を満たすプログラムを作成してください。
- 要素数10000のint型配列を明示的に作成し、その配列を補助配列とするIntBufferを作成する。
- バッファの先頭から順番に1〜10の乱数を書き込む。
- 書き込んだ値の合計が10000を超えた時点で書き込みを終了する。
- バッファへの書き込みが終了したあと、バッファに蓄積したデータすべてと要素数を標準出力に出力する。
解答例
package com.techscore.nio.chapter2.subject1;
import java.nio.IntBuffer;
import java.util.Date;
import java.util.Random;
/**
* Main.java TECHSCORE NewIO 2章 実習課題1
*
* Copyright (c) 2004 Four-Dimensional Data, Inc.
*/
public class Main {
public static void main(String[] args) {
int[] ints = new int[10000];
IntBuffer buffer = IntBuffer.wrap(ints);
Random random = new Random();
random.setSeed((int) new Date().getTime());
int sum = 0;
int count = 0;
final int MAX = 10000;
for (; count < ints.length; count++) {
int r = random.nextInt(10) + 1;
sum += r;
if (sum > MAX) {
break;
}
buffer.put(r);
}
System.out.print("要素数:\t");
System.out.println(count);
System.out.print("バッファデータ\t");
for (int i = 0; i < buffer.array().length; i++) {
int data = buffer.array()[i];
System.out.print(String.valueOf(data));
if (i < buffer.array().length - 1) {
System.out.print(", ");
}
}
}
}

