help in java
The first variable, x, will be used to create an integer array of size x, which should be filled starting with the value of x and descending to 1 in the last index. Use a method createXArray (int x) that returns the newly created array. For example, if x is 20, it should create an array of length 20 with the first index containing 20 and the last index containing 1. [Instructor note:Did you ask yourself: What happens if x is less than 1? This would be an error condition you as the program should handle. To resolve this, you will explicitly throw and out of bounds error. In other words, detect the error condition, but don’t print a message about bad data, or make any adjustments:just force an exception that is passed back to the calling program. In our case, the calling program is not going to handle it, so the default exception handler will kick in. You’ll see! An example is at the end of these instructions. What will you use to verify the array is correctly initialized? The debugger? A print method?” Such questions go in the side note.] The second variable, y, will be used to call a method createYArray (int y, int [] xArray) to create a second integer array of size y, which should be filled with random numbers taken from the x-array. It is okay to have repeating values in your second array. This this example, x was 20 and y is 10: You should import the java. util. Random class, and give it the seed 123L (the L is for long integer value) when choosing the index to take from your x-array and put it into your y-array. And here it is:That should read: You should import the java .util. Random class, and initialize it with a seed value:Random rand = new Random (123L);. Use rand. nextInt () to get an x-array index at random, such that y-array [i] = x-array [randomIndex] may be repeated until the y-array is entirely initialized. How will you handle bad input? Again, throw an ArraylndexOutofBoundsException. Create a method printArray (int [] array) where a loop prints out a one-dimensional array on one line with one space in between each number and ends with a newline. Create a method getIdentificationstring () that returns your identification string. Think about code re-use:did you already write a getIdentificationstring () method you can go get and modify? In this program, the method will return: As in the first program, this program will not call this method but it will be tested with a unit test. Create a method main (.. .) that reads in an x and a y value, creates x-array, prints it, creates the y-array, prints it. Ex. If x = 20 and y = 10 then the output numbers should be this exactly:
Expert Answer
public class Test {
public static int[] createXArray(int x) {
if(x < 1) {
throw new ArrayIndexOutOfBoundsException(“The given size should be greater than 1.”);
}
int[] array = new int[x];
for(int i=0; i<x; i++)
array[i] = x – i;
return array;
}
public static int[] createYArray(int y, int[] xArray) {
if(y < 1) {
throw new ArrayIndexOutOfBoundsException(“The given size should be greater than 1.”);
}
Random r = new Random(123L);
int[] array = new int[y];
for(int i=0; i<y; i++)
array[i] = xArray[r.nextInt(xArray.length)];
return array;
}
public static void printArray(int[] array) {
for(int n: array) {
System.out.print(n + ” “);
}
System.out.println();
}
// I am not writing the getIdentification method, as it is not clear what it does
// looks like.. it refers to some class of the past
// hence leaving it
public static void main(String[] args) {
int x = 20, y = 10;
int [] xArray = createXArray(x);
printArray(xArray);
int [] yArray = createYArray(y, xArray);
printArray(yArray);
}
}