* 随机生成双色球: a. 红球[1, 32], 红球6个, 不能重复; b.[1, 16], 篮球一个.
*/
@Test
public void doubleColorBall(){
Random random = new Random();
Set<Integer> redBall = new HashSet<Integer>();
while(redBall.size() < 6){
redBall.add(random.nextInt(32) + 1);
}
System.out.print("红球: ");
for(Integer inte : redBall){
System.out.print(inte + " ");
}
System.out.print(" 蓝球: " + (random.nextInt(16) + 1));
}
//冒泡排序
@Test
public void bubbleSort(){
int[] array = {21, 2, 12, 35, 46, 89, 9, 8, 7};
for(int i = 0; i < array.length - 1; i++){ //控制着多少个数字沉底
for(int j = 0; j < array.length - i - 1;j++){ //交换
if(array[j] > array[j + 1]){
int temp = array[j];
array[j] = array[j + 1];
array[j + 1] = temp;
}
}
}
for(int i = 0; i < array.length; i++){
System.out.println(array[i]);
}
}
随机生成一个数组,判断所有元素中相同元素 的个数
int[] array = new int[60];
Random random = new Random();
for(int i = 0; i < array.length; i++){
array[i] = random.nextInt(40) + 1;
}
/** map的key不能重复,
* 用map的key存放数组的值, map的value存放次数
*/
Map<Integer, Integer> map = new HashMap<Integer, Integer>();
// 3, 3, 3, 2, 1, 2
for(int i = 0; i < array.length; i++){
/**
Integer times = map.get(array[i]);
if(null == times){
map.put(array[i], 1);
}else{
map.put(array[i], times + 1);
}
*/
map.put(array[i], map.get(array[i]) == null ? 1 : map.get(array[i]) + 1);
}
Set<Entry<Integer, Integer>> entrySet = map.entrySet();
for(Entry<Integer, Integer> entry : entrySet){
System.out.println(entry.getKey() + "出现的次数" + entry.getValue());
}
/**
* 1.add() 比较hashcode, 如果hashcode相同, 在去标记equals()方法.
* hashcode的特性: 1.如果hashcode相同, 对象可能相同;
* 2. hashcode不同, 对象肯定不同;
* 3. 对象相同,hashcode肯定相同.
*
* hashcode时根据对象所处的内存地址, 然后在加上对象的某些属性, 通过hash算法得到.
*/
}