学习目标
●排序查找算法
○冒泡排序
○选择排序
○二分查找
●Map集合
○Map集合的特点
○Map集合的特点及实现类
○Map集合的遍历方式
●集合嵌套
○单列集合嵌套单列集合
○单列集合嵌套双列集合
○双列集合嵌套双列集合
●集合案例-斗地主
1. Map集合
1.1 什么时使用双列集合 ?
1.集合中保存的数据是成对存在的叫做双列集合。
2.用来表示一一对应的数据。
2.2 HashMap集合特点及使用 ?
1.特点:键唯一和无序。
2.使用跟Map一样但是要注意,自定义类需要重写hashCode和equals方法才能达到去重的作用。
3.3 双列集合遍历方式及区别 ?
调用map集合的entrySet方法获取所有的键值对对象→→遍历每一个键值对对象(Entry对象)→→getKey获取键,getValue获取值
区别就是获取的是一对数据而不是一个数据。
3.4 集合的体系及每一种集合的特点 ?
集合的体系 | 特点(1) | 特点(2) | 特点(3) |
---|---|---|---|
Map | 键不能重复值可以重复 | 数据都是一一对应的 | (键 + 值) 一起是一个整体 |
HashMap | 底层是数组加列表:查询快 | 可以重写hashCode和equals方法达到去重效果 | 可以通过重写方法以hash值排序 |
LinkedHashMap | 元素唯一 | 元素有序 | |
TreeMap | 能去重 | 排序 |
2. 排序查找算法
2.1 排序查找算法思想及代码实现 ?
1.冒泡排序原理:相邻的数据两两比较,小的放前面,大的放后面。
public static void main(String[] args) {
int[] arr = {9, 1, 6, 8, 7};
for (int x = 0; x < arr.length-1; x++) {
for (int i = 0; i < arr.length - 1 - x; i++) {
if (arr[i] > arr[i + 1]) {//升序
//降序arr[i] < arr[i + 1]
int temp = arr[i];
arr[i] = arr[i + 1];
arr[i + 1] = temp;
}
}
}
System.out.println(Arrays.toString(arr));
}
2.选择排序原理:是每一次从待排序的数据中选出最小的一个元素,存放在序列的起始位置,然后,再从剩余未排序元素中继续寻找最小元素,然后放到已排序序列的末尾。以此类推,直到全部待排序的数据排完为止。
public class SortDemo {
public static void main(String[] args) {
int[] arr = {55, 11, 44, 22, 33};
for (int i = 0; i < arr.length; i++) {
//定义变量记录当前排序中最小元素排列
int minValueIndex = i;
//遍历当前元素一直到数组末尾
for (int j = i + 1; j < arr.length; j++) {
if (arr[j] < arr[minValueIndex]) {
minValueIndex = j;
}
}
//元素交换位置
if (i != minValueIndex){
int temp = arr[i];
arr[i] = arr[minValueIndex];
arr[minValueIndex] = temp;
}
}
System.out.println(Arrays.toString(arr));
}
}
3.二分查找的原理是:每次去掉一半的查找范围
public class BinarySearchDemo {
public static void main(String[] args) {
int []arr = {1,2,3,4,5,6,7,8,9,10};
System.out.println(Arrays.binarySearch(arr, 7));
}
public static int binarySearch(int[] arr, int num) {
int min = 0;
int max = arr.length - 1;
while (min <= max) {
int mid = (min = max) / 2;
if (arr[mid] == num) {
return mid;
} else if (arr[mid] > num) {
max = mid - 1;
} else {
min = mid + 1;
}
}
return -1;
}
}
3. 当日问题小结
3.1 当日遇到的问题
3.2 出现问题原因
3.3 解决问题方案
若有收获,就点个赞吧