/*
* This file is part of the Jikes RVM project (http://jikesrvm.org).
*
* This file is licensed to You under the Eclipse Public License (EPL);
* You may not use this file except in compliance with the License. You
* may obtain a copy of the License at
*
* http://www.opensource.org/licenses/eclipse-1.0.php
*
* See the COPYRIGHT.txt file distributed with this work for information
* regarding copyright ownership.
*/
package test.org.jikesrvm.basic.core.bytecode;
class TestArrayAccess {
public static void main(String[] args) {
boolean_array();
byte_array();
char_array();
short_array();
int_array();
long_array();
float_array();
double_array();
object_array();
array_array();
multi_int_array();
multi_object_array();
multi_partial_array();
}
private static void boolean_array() {
final boolean[] array = new boolean[]{false, true};
System.out.print("Boolean Array Expected: false,true Actual: ");
System.out.print(array[0]);
System.out.print(",");
System.out.print(array[1]);
System.out.println();
}
private static void byte_array() {
final byte[] array = new byte[]{127, -1};
System.out.print("Byte Array Expected: 127,-1 Actual: ");
System.out.print(array[0]);
System.out.print(",");
System.out.print(array[1]);
System.out.println();
}
private static void char_array() {
final char[] array = new char[]{'c', '$'};
System.out.print("Char Array Expected: c,$ Actual: ");
System.out.print(array[0]);
System.out.print(",");
System.out.print(array[1]);
System.out.println();
}
private static void short_array() {
final short[] array = new short[]{32767, -1};
System.out.print("Short Array Expected: 32767,-1 Actual: ");
System.out.print(array[0]);
System.out.print(",");
System.out.print(array[1]);
System.out.println();
}
private static void int_array() {
final int[] array = new int[]{0, 1};
System.out.print("Int Array Expected: 0,1 Actual: ");
System.out.print(array[0]);
System.out.print(",");
System.out.print(array[1]);
System.out.println();
}
private static void long_array() {
final long[] array = new long[]{0, 1};
System.out.print("Long Array Expected: 0,1 Actual: ");
System.out.print(array[0]);
System.out.print(",");
System.out.print(array[1]);
System.out.println();
}
private static void float_array() {
final float[] array = new float[]{0, 1};
System.out.print("Float Array Expected: 0,1 Actual: ");
System.out.print(array[0]);
System.out.print(",");
System.out.print(array[1]);
System.out.println();
}
private static void double_array() {
final double[] array = new double[]{0, 1};
System.out.print("Double Array Expected: 0,1 Actual: ");
System.out.print(array[0]);
System.out.print(",");
System.out.print(array[1]);
System.out.println();
}
private static void object_array() {
final Object[] array = new Object[]{null, "s"};
System.out.print("Double Array Expected: null,s Actual: ");
System.out.print(array[0]);
System.out.print(",");
System.out.print(array[1]);
System.out.println();
}
private static void array_array() {
final Object[] array = new Object[]{null, new Object[2]};
System.out.print("Double Array Expected: null,[Ljava.lang.Object; Actual: ");
System.out.print(array[0]);
System.out.print(",");
System.out.print(array[1].getClass().getName());
System.out.println();
}
private static void multi_int_array() {
final int outer = 2;
final int middle = 3;
final int inner = 4;
final int[][][] ary = new int[outer][middle][inner]; // multianewarray
int n = 0;
for (int i = 0; i < outer; ++i)
for (int j = 0; j < middle; ++j)
for (int k = 0; k < inner; ++k)
ary[i][j][k] = n++;
System.out.println("Multi-dimensional Int Array");
for (int i = 0; i < outer; ++i) {
for (int j = 0; j < middle; ++j) {
for (int k = 0; k < inner; ++k) {
System.out.printf(" %4d", ary[i][j][k]);
}
System.out.println();
}
System.out.println();
}
System.out.println();
}
private static void multi_object_array() {
final int outer = 2;
final int middle = 3;
final int inner = 4;
final Integer[][][] ary = new Integer[outer][middle][inner]; // multianewarray
int n = 0;
for (int i = 0; i < outer; ++i)
for (int j = 0; j < middle; ++j)
for (int k = 0; k < inner; ++k)
ary[i][j][k] = n++;
System.out.println("Multi-dimensional Object Array");
for (int i = 0; i < outer; ++i) {
for (int j = 0; j < middle; ++j) {
for (int k = 0; k < inner; ++k) {
System.out.printf(" %4d", ary[i][j][k]);
}
System.out.println();
}
System.out.println();
}
System.out.println();
}
private static void multi_partial_array() {
final int outer = 2;
final int middle = 3;
final int[][][] ary = new int[outer][middle][]; // multianewarray
System.out.println("Partial Multi-dimensional int Array");
for (int i = 0; i < outer; ++i) {
for (int j = 0; j < middle; ++j) {
System.out.printf(" %5s", String.valueOf(ary[i][j]));
}
System.out.println();
}
}
}