🛠️
配列関連のメソッドや方法論の話
配列関連のメソッドや方法論の話
配列の扱いにまだ慣れていないので、備忘録として試したコードなどを掲載していきます。
テストコード全体は、一番下に掲載。
Case 1: 配列の出力
Arrays.toString(array)
1次元: 例:5カラムの配列
public static void displayAry(){
int[] displayAry = createAry(5);
System.out.println(Arrays.toString(displayAry));
}
出力結果:
[12, 3, 18, 10, 15]
Arrays.deepToString(array)
2次元配列:例:2 x 3 の二次元配列
public static void display2Dary(){
int[][] display2D= create2Dary(2,3);
System.out.println(Arrays.deepToString(display2D));
}
出力結果:
[[6, 12, 8], [9, 14, 9]]
Case2: システムからの入力値を配列に二次元配列に変換
これが手間取ったので、備忘録として。
例:5 x 4 の2次元配列
前提条件として、入力値のフォーマットは以下。n
が行数を示す。列は4で固定。
n
s_1 e_1 h_1 l_1
...
s_n e_n h_n l_n
public static void main(String[] args) {
convertStrTo2d(test1);
}
static String test1 =
"5\n" + // no.of row
"16654 16544 16757 16543\n" + // column 1
"16535 16321 16602 16310\n" + // column 2
"16321 16315 16463 16273\n" + // (cont.)
"16313 16141 16313 15855\n" +
"15921 16117 16212 15918";
public static void convertStrTo2d(String test){
Scanner scanner = new Scanner(test);
int row = scanner.nextInt();
int[][] testrow = new int[row][4];
for(int i = 0; i < row; i++)
for(int j = 0; j < 4; j++)
testrow[i][j] = scanner.nextInt();
System.out.println(Arrays.deepToString(testrow));
scanner.close();
}
出力結果
[[16654, 16544, 16757, 16543], [16535, 16321, 16602, 16310], [16321, 16315, 16463, 16273], [16313, 16141, 16313, 15855], [15921, 16117, 16212, 15918]]
参考:テストコード
DemonstrateArray.java
import java.util.Arrays;
import java.util.Scanner;
public class DemonstrateArray {
// For recap: handling arrays
public static void main(String[] args) {
display2Dary(); // [[6, 12, 8], [9, 14, 9]]
displayAry(); // [12, 3, 18, 10, 15]
convertStrTo2d(test1);
}
// case1: Display elements in an array
// case1-1: an array
public static void displayAry(){
int[] displayAry = createAry(5);
System.out.println(Arrays.toString(displayAry));
}
// case1-2: 2D array
public static void display2Dary(){
int[][] display2D= create2Dary(2,3);
System.out.println(Arrays.deepToString(display2D));
}
// Case2: convert String input into int 2D array
static String test1 =
"5\n" + // no.of row
"16654 16544 16757 16543\n" + // column 1
"16535 16321 16602 16310\n" + // column 2
"16321 16315 16463 16273\n" + // (cont.)
"16313 16141 16313 15855\n" +
"15921 16117 16212 15918";
public static void convertStrTo2d(String test){
Scanner scanner = new Scanner(test);
int row = scanner.nextInt();
int[][] testrow = new int[row][4];
for(int i = 0; i < row; i++)
for(int j = 0; j < 4; j++)
testrow[i][j] = scanner.nextInt();
System.out.println(Arrays.deepToString(testrow));
scanner.close();
}
// Array Generators
public static int[] createAry(int col){
int[] ary = new int[col];
for(int i = 0; i < col; i++){
ary[i] = (int) (Math.random() * 20);
}
return ary;
}
public static int[][] create2Dary(int row, int col){
int[][] twoDary = new int[row][col];
for(int i = 0; i < row; i++){
for(int j = 0; j < col; j++){
twoDary[i][j] = (int) (Math.random() * 20);
}
}
return twoDary;
}
}
Discussion