1.数据结构
数组
- 特点:存储区间连续的,内存占用严重
- 优点:随机读取和修改效率高。 查询来说时间复杂度O(1)
- 缺点:插入和删除速度慢。时间复杂度为O(N)
链表
- 特点:存储区间是离散的。内存利用率高
- 优点:插入和删除速度快
- 缺点:不能随机查找。查询效率低
树
- 特点:本身具备了排序能力
HashMap
- HashMap就是采用了数组+链表+红黑树的结构。
- 通过分析得知可以通过HashMap中的key得到数组的索引,加快了CRUD的所有操作。
2. HashMap
根据Key获取对应的value。
常用方法
方法名 | 说明 |
put( ) | 添加,原本key值对应有value,在使用put方法就会变成修改 |
remove() | 删除 |
containsKey() | 判断key是否存在 |
containsValue() | 判断value是否存在 |
遍历方法
public static void main(String[] args) {HashMap<Integer, String> map = new HashMap<>();map.put(1001,"张三");map.put(1003,"王二");map.put(1001,"麻子"); //修改map.remove(1001); //删除boolean f = map.containsKey(1001); //判断key是否存在boolean f2 = map.containsValue("麻子");//判断value是否存在//遍历方法一:Set<Integer> set = map.keySet();for (Integer integer : set) {System.out.println(map.get(integer)); //get(key) 根据Key获取对应的value}//遍历方法二:Set<Map.Entry<Integer, String>> entries = map.entrySet();for (Map.Entry<Integer, String> entry : entries) {System.out.println(entry.getKey()+"--"+entry.getValue());}}
3. HashTable
使用方法同HashMap差不多
常用方法
方法名 | 说明 |
put( ) | 添加,原本key值对应有value,在使用put方法就会变成修改 |
remove() | 删除 |
containsKey() | 判断key是否存在 |
containsValue() | 判断value是否存在 |
HashTable和HashMap的区别
-
HashMap是线程不安全的。HashTable是线程安全的
-
HashMap效率高,HashTable效率低
-
HashMap中的key和value都可以为null,HashTable不可以为null。