掌握Map接口的使用
语法:
这里我直接写个上代码,注释里面有语法:
package com.hashmap.demo;
import java.util.HashMap;
import java.util.Map;
/**
*
* Hash:哈希,散列
*
* @author DELL Map:映射 (--映射)
* 1. key == value (即一个键有且对应一个值)
* 2. key不能重复,是唯一的
* 3. value可以重复
* 4. 每一个键值对就封装在Entry对象中
* 5.entry对象又由key和value组成
* 6.添加元素put(key,value);
* 7.如果键相同,其实就是修改,覆盖原有的值
* 8.删除元素,用remove(key)
* 9.读取单个元素用get(key)
* 10.获取长度:size()
* 11.map.containsKey(key) 表示判断是否存在指定的key
* 12.map.containsValue(value) 表示判断是否存在指定的value
*
* Map entry key - value entry key - value entry
*/
public class Demo {
public static void main(String[] args) {
Map map = new HashMap();
/** 添加元素 */
map.put("10000", "张三");
map.put("10001", "李四");
map.put("10002","小明");
/** 下面的这个key 10001和上面的一样了,也就是覆盖了,覆盖就是修改 把张三改成了王五 */
map.put("10000", "王五");
/** 删除元素 */
map.remove("10002");
map.containsKey("10000");
/** 取值 */
System.out.println(map.get("10001"));
}
}
了解HashMap和Hashtable的区别
线程安全问题
多线程:重要 复杂 难度高
相同点:
1.HashMap和Hashtable都是Map接口的实现,都可以实现键值对存储
不同点:
1.HashMap键值存储都可以为null,如果键为null则只能存储一次
Hashtable键值存储都不允许为null
2.HashMap是线程不安全的,效率高
Hashtable是线程安全的,效率低
多线程:重要 复杂 难度高
掌握Collections工具类的常用操作
Arrays
Collections
1.void sort(集合); 对集合进行升序排序
2.int max(集合); 获取集合中的最大值
3.int min(集合); 获取集合中的最小值
4.int binarySearch(集合,要查找的元素); 查找指定的键
5.void shuffle(集合); 打乱集合元素顺序
遍历方法
直接上代码:
package com.hashmap.demo;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Map.Entry;
import java.util.Set;
public class Demo1 {
public static void main(String[] args) {
/** 创建HashMap对象 */
Map map = new HashMap();
map.put("1000", "张三");
map.put("1001", "李四");
map.put("1002", "王五");
Set entrySet = map.entrySet();
for (Object entry : entrySet) {
Entry e = (Entry)entry;
System.out.println(e);
}
/** 先获取map中所有的key */
Set keys = map.keySet(); // ["1000","1001","1002"]
Iterator it = keys.iterator();
while(it.hasNext()) {
String key = (String)it.next();
System.out.println(key + "--------"+ map.get(key));
}
}
}