definition
Array utility class: various methods used to manipulate arrays, such as sorting and searching
To use this method, you need to import the toolkit: import java.util.Arrays;
common method
 Binary search: arrays.binarysearch (int [] array, int value);
 The contents of the array are converted into a string for output: arrays.tostring (int [] array);
 Array sorting: arrays.sort (int [] array)
 Copy the specified array:
 Arrays.copyOf(int [] arrary, int length); Copy array by length
 System.arraycopy(Object src, int srcPos, Object dest, int destPos,int length);， Parameter information: original object, the starting position of the original object; Target array, the starting position of the target array; Copy length
 Judge whether two arrays are equal: arrays.equals (int [] array_1, int array_2);
 Fill the array with the specified elements: arrays. Fill (int [] array, int value);
 The order of array replication efficiency from high to low is: arraycopy  > copyof  > for cyclic reading
Code example
package class_1006; import java.util.Arrays; public class class_arrary { public static void main(String[] args) { // TODO Autogenerated method stub int[] num = {11,22,33,44,55,66,77,88,99,101}; int index_t = Arrays.binarySearch(num, 99);//Binary search_ Can find System.out.println("The subscript in the sequence is:"+index_t); int index_f = Arrays.binarySearch(num, 0);//Binary search_ can't find System.out.println("The subscript in the sequence is:"+index_f);//The return value is  (low+1) int [] data = {101,10,88,55,66,77,33,200,109}; System.out.println("data After array conversion:"+Arrays.toString(data));//The contents of the array are converted into string s and output directly String new_num = Arrays.toString(num); System.out.println("num After array conversion:"+new_num);//Assign value to variable before output Arrays.sort(data);//Quick sort is used System.out.println("num After array sorting conversion:"+Arrays.toString(data));//Output string after sorting //Copy the specified array according to the length. If the set length is greater than the length of the array, the default value of the extra array is 0 int[] new_data = Arrays.copyOf(data, 10); System.out.println("data After the array is copied and replaced:"+Arrays.toString(new_data)); //In this way, the length parameter controls the number of copied array elements; The starting position of the original array controls where to start the value //The starting position of the new array controls where to start writing int[] new_data_1 = new int[data.length];//Create a new array and define the length System.arraycopy(new_data, 2, new_data_1, 2,3);//Copies the specified array System.out.println("data After copying the array:"+Arrays.toString(new_data_1)); boolean result = Arrays.equals(data, num);//Determine whether two arrays are equal System.out.println("The comparison result of the two arrays is:"+result); Arrays.fill(num, 1000);//Fills the data filled element with the specified element System.out.println("The result after filling is:"+Arrays.toString(num)); } } //result The subscript in the sequence is: 8 The subscript in the sequence is:1 data After array conversion:[101, 10, 88, 55, 66, 77, 33, 200, 109] num After array conversion:[11, 22, 33, 44, 55, 66, 77, 88, 99, 101] num After array sorting conversion:[10, 33, 55, 66, 77, 88, 101, 109, 200] data After the array is copied and replaced:[10, 33, 55, 66, 77, 88, 101, 109, 200, 0] data After copying the array:[0, 0, 55, 66, 77, 0, 0, 0, 0] The comparison result of the two arrays is: false The result after filling is:[1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000]
Two color ball case
Playing method of twocolor lottery
Two color ball betting is divided into red ball number area and basketball number area. The red ball number area is 0133 and the basketball number area is 0116; The twocolor ball has six numbers from 33 red balls in each issue, and one number from 16 blue balls is a good way to win the prize. Even if you guess the six red ball numbers and one blue ball number of the lottery number, the order is unlimited
 First prize: 6 red balls and 1 blue ball are all correct
 Second prize 6 red balls correct
 Third prize 5 red balls and 1 blue ball correct
 The fourth prize is 5 red balls correct or 4 red balls and 1 blue ball correct
 The fifth prize is 4 red balls correct or 3 red balls and 1 blue ball correct
 The sixth prize is 1 red ball, 1 blue ball, 2 red balls, 1 blue ball and 1 blue ball
analysis
 How to produce blue ball and red ball—— generation of random number
 How to receive user selected numbers?
 How to verify whether winning?
 Announce the winning numbers of this issue
Implementation steps

Overall realization idea
Step 1: the user selects whether it is machine selection or first choice; Machine selected random production, user input is preferred
Step 2: receive user selected number (6 red and 1 blue)
Step 3: system generated number (6 red and 1 blue)
Step 4: compare the number with the user number and calculate the equivalent number
Step 5: verify whether you win the prize
Step 6: system number sorting
Step 7: give the results 
Random value non repetition algorithm (system and user)

The logic of calculating whether to win the prize

Result output
Code example
package class_1006; import java.util.Random; import java.util.Scanner; import java.util.Arrays; public class class_two_color { public static void main(String[] args) { // TODO Autogenerated method stub //Preparatory work  define relevant variables int[] userRedBall = new int[6];//Define the red ball number selected by the user int userBlueBall = 0;//The blue ball number selected by the user, because there is only 1, is given a default value of 0 int[] rebortRedBall = new int[6];//Defines the red ball number selected by the system int rebortBlueBall = 0;//System selected basketball number int redCount = 0; //The user selects the correct number of red balls int blueCount = 0; //The user selects the correct number of red balls //It is necessary to randomly generate 6 numbers that are not repeated between 133 (algorithm) //Implementation method: after the random number is generated, change the position between the random number and the last bit in the array, and the next time it is random, the array  1 int[] redBall = new int[33];//An array used to randomly generate red ball numbers for(int i=0;i<redBall.length;i++){ redBall[i] = i+1; } //At the beginning of the game, the user needs to select the number, machine selection or manual input System.out.println("The twocolor ball game begins. Good luck!"); System.out.println("Please select the way to purchase the number (1: machine selection, 2: manual selection):"); Scanner input = new Scanner(System.in); boolean flag = true; // while(flag){ int isAuto = input.nextInt();//Use a variable to receive the results of the console //Select the number by machine or hand according to the console results switch (isAuto) { case 1: //Machine selection //redBall is an array of 133. userRedBall is the red ball number generated by the user. It is not repeated and corresponds to the following computerSelect(redBall,userRedBall);//Machine selected red ball Random r = new Random(); userBlueBall = r.nextInt(16)+1;//The blue ball generated randomly in 16 bits should be + 1, because it starts from 0 flag = false;//The loop exits, so the value of flag is changed break; case 2: //Hand selection System.out.println("Please select 133 The 6 red ball numbers between cannot be repeated"); for(int i=0;i<userRedBall.length;i++){ userRedBall[i] = input.nextInt(); } System.out.println("Please select 116 1 basketball number between"); userBlueBall = input.nextInt(); flag = false; break; //If the value entered is not 1 or 2, go to this step default: System.out.println("Please select the way to purchase the number (1: machine selection, 2 "preferred):"); } } //The system randomly generates red balls and puts them into the array of red balls computerSelect(redBall,rebortRedBall); //System randomly generates blue ball Random r = new Random(); rebortBlueBall = r.nextInt(16)+1; //Statistical results, statistical red balls, judge several guesses for(int i=0;i<userRedBall.lengthredCount;i++){ for(int j=0;j<rebortRedBall.length;j++){ //If two numbers are equal if(userRedBall[i]==rebortRedBall[j]){ //Swap equal values to the last bit int temp = rebortRedBall[j]; rebortRedBall[j]=rebortRedBall[rebortRedBall.length1redCount]; rebortRedBall[rebortRedBall.length1redCount]=temp; redCount++; break; } } } //Statistical basketball if(userBlueBall==rebortBlueBall){ blueCount = 1; } //Verify whether the winner if(blueCount==0 && redCount<=3){ System.out.println("Sorry, you didn't win the prize"); }else if(blueCount==1 && redCount<3){ System.out.println("Congratulations, you won the sixth prize, which can be exchanged for 5 yuan"); }else if((blueCount==1 && redCount==3)(blueCount==0 && redCount==4)){ System.out.println("Congratulations, you won the fifth prize, which can be exchanged for 10 yuan"); }else if((blueCount==1 && redCount==4)( blueCount==0&&redCount==5)){ System.out.println("Congratulations, you won the fourth prize, which can be exchanged for 200 yuan"); }else if(blueCount==1 && redCount==5){ System.out.println("Congratulations, you won the third prize, which can be exchanged for 3000 yuan"); }else if(blueCount==0 && redCount==6){ System.out.println("Congratulations, you won the second prize, which can be exchanged for 150000 yuan"); }else if(blueCount==1 && redCount==6){ System.out.println("Congratulations, you won the first prize, which can be exchanged for 5 million yuan"); }else { System.out.println("System error, winning is invalid!"); } //Output  publish system number System.out.println("The red ball number of this issue is:"); sort(rebortRedBall); System.out.println(Arrays.toString(rebortRedBall)); System.out.println("The winning basketball number of this issue is:"+rebortBlueBall); //Publish user number System.out.println("The red ball number you selected is:"); sort(userRedBall); System.out.println(Arrays.toString(userRedBall)); System.out.println("The winning basketball number of this issue is:"+userBlueBall); } //Bubble sorting public static void sort(int[] ball){ for(int i =0;i<ball.length1;i++){ for(int j=0;j<ball.length1i;j++){ if(ball[j]>ball[j+1]){ ball[j]=ball[j]+ball[j+1]; ball[j+1]=ball[j]ball[j+1]; ball[j]=ball[j]ball[j+1]; } } } } //Randomly generate multiple non repeating red balls in the specified sequence //ballCoubnt is a sequence of 133; redBall is an array placed for the generated 6 numbers public static void computerSelect(int [] redBall,int[] userRedball){ Random r = new Random(); int index = 1;//The subscript is put here because it needs to be reused for(int i =0;i<=userRedball.length1;i++){ //Randomly generate several numbers and subtract a few from the length to ensure that the selected values are not repeated index = r.nextInt(redBall.lengthi);//The subscript of a number is randomly generated in the sequence of 133 //The index subscript is the number stored in the selected value and is placed at the end of the sequence userRedball[i]=redBall[index];//Place the value of the subscript in the new sequence int temp = redBall[index];//Intermediate variable, temporarily put the stored value for exchange //0 should be exchanged with the last value of the sequence. When i=1, it should be exchanged with the last value of the sequence redBall[index]= redBall[redBall.length1i]; redBall[redBall.length1i]=temp; } } } //result The twocolor ball game begins. Good luck! Please select the way to purchase the number (1: machine selection, 2: manual selection): 1 Sorry, you didn't win the prize The red ball number of this issue is: [3, 10, 18, 21, 25, 32] The winning basketball number of this issue is: 11 The red ball number you selected is: [3, 18, 23, 24, 26, 30] The winning basketball number of this issue is: 16