解答例 - 実習課題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(", "); } } } }