java常用算法题

来源:互联网 发布:面部识别照相软件 编辑:程序博客网 时间:2024/05/20 05:27
/**
* 随机生成双色球: 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算法得到.
 */
}




0 0
原创粉丝点击