package com.yan3;
import java.util.Arrays;
public class ArrayList {
private Ball[] arr;
private int size = 0;
public ArrayList() {
this(10);
}
public ArrayList(int length) {
arr = new Ball[length];
}
public void add(Ball data) {
arr[size++] = data;
if (size >= arr.length)
resize();
}
/**
* @param index 需要删除的数据下标
*/
public Ball delete(int index) {
if (index >= size || size < 0)
throw new ArrayIndexOutOfBoundsException();
Ball res = arr[index];
System.arraycopy(arr, index + 1, arr, index, arr.length - index - 1);
arr[size - 1] = null;
size--;
return res;
}
public void update(int index, Ball data) {
if (index >= size || size < 0)
throw new ArrayIndexOutOfBoundsException();
arr[index] = data;
}
public Ball[] getData() {
Ball[] res = new Ball[size];
System.arraycopy(arr, 0, res, 0, size);
return res;
}
public String toString() {
return Arrays.toString(arr);
}
private void resize() {
Ball[] res = new Ball[arr.length * 3 / 2];
System.arraycopy(arr, 0, res, 0, arr.length);
this.arr = res;
}
public int size() {
return this.size;
}
public Ball[] sort() {
Ball[] arr1 = this.getData();
Arrays.sort(arr1);
return arr1;
}
}
package com.yan3;
public final class Ball implements Comparable<Ball> {
private final int number;
private final BallColor color;
public Ball(int num, BallColor color) {
this.number = num;
this.color = color;
}
public int getNumber() {
return number;
}
public BallColor getColor() {
return color;
}
@Override
public String toString() {
return "(" + number + ", " + color + ")";
}
@Override
public int compareTo(Ball o) {
int res = this.color.compareTo(o.color);
if (res == 0) {
res=this.number-o.number;
}
res*=-1;
return res;
}
}
package com.yan3;
import java.util.Arrays;
import java.util.Random;
//红色球号码从1--33中选择;蓝色球号码从1--16中选择
//每注投注号码由6个红色球号码和1个蓝色球号码组成
public class Test1 {
public static void main(String[] args) {
ArrayList list1 = new ArrayList();
for (int i = 1; i <= 33; i++)
list1.add(new Ball(i, BallColor.RED));
ArrayList list3 = new ArrayList(7);
Random r = new Random();
for (int i = 0; i < 6; i++) {
int pos=r.nextInt(list1.size());
Ball data=list1.delete(pos);
list3.add(data);
}
list3.add(new Ball(r.nextInt(16)+1, BallColor.BLUE));
list3.sort();
Ball[] res=list3.getData();
System.out.println(Arrays.toString(res));
}
}