package cn.itcast.demo;
import java.util.HashMap;
import java.util.Map;
/*Map集合:
* 1.Map集合是一个双列集合,一个元素包含两个值
* 2.Map集合中的元素,key与value的数据类型既可以相同也可以不同
* 3.key不允许重复,而value可以
* 4.Map集合中,key与value一一对应
*
*
- public V put(K key, V value): 把指定的键与指定的值添加到Map集合中。
- public V remove(Object key): 把指定的键 所对应的键值对元素 在Map集合中删除,返回被删除元素的值。
- public V get(Object key) 根据指定的键,在Map集合中获取对应的值。
- boolean containsKey(Object key) 判断集合中是否包含指定的键。
- public Set<K> keySet(): 获取Map集合中所有的键,存储到Set集合中。
- public Set<Map.Entry<K,V>> entrySet(): 获取到Map集合中所有的键值对对象的集合(Set集合)。
* */
public class Demo01Map {
public static void main(String[] args) {
show01();
show02();
show03();
}
private static void show03() {
Map<String,Integer>map = new HashMap<>();
map.put("zly",168);
map.put("yy",165);
map.put("lzl",178);
// get方法
Integer v1 = map.get("yy");
Integer v2 = map.get("dlrb");//null
System.out.println(v1+" "+v2);
}
private static void show02() {
Map<String,Integer>map = new HashMap<>();
map.put("zly",168);
map.put("yy",165);
map.put("lzl",178);
System.out.println(map);
// remove方法
map.remove("lzl");
System.out.println(map);
}
private static void show01() {
Map<String,String>map = new HashMap<>();
String v1 = map.put("李晨","范冰冰1");
String v2 = map.put("李晨","范冰冰2");
// System.out.println(v1);//null
// System.out.println(v2);//范冰冰1,返回被换掉的
// System.out.println(map);
map.put("杨过","小龙女");
map.put("尹志平","小龙女");
map.put("lpw","zhc");
}
}
遍历
package cn.itcast.demo;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Set;
public class Demo02KeySet {
public static void main(String[] args) {
Map<String,Integer> map = new HashMap<>();
map.put("zly",168);
map.put("yy",165);
map.put("lzl",178);
Set<String>set = map.keySet();//取出Map集合中的每一个Key值
Iterator<String> it = set.iterator();
while (it.hasNext()){
String key = it.next();
Integer value = map.get(key);
System.out.println(value);
}
System.out.println("=================");
for(String key:map.keySet()){
Integer value = map.get(key);
System.out.println(value);
}
}
}
package cn.itcast.demo;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Set;
public class Demo03EntrySet {
public static void main(String[] args) {
Map<String,Integer> map = new HashMap<>();
map.put("zly",168);
map.put("yy",165);
map.put("lzl",178);
Set<Map.Entry<String,Integer>>set = map.entrySet();
Iterator<Map.Entry<String, Integer>> it = set.iterator();
while(it.hasNext()){
Map.Entry<String, Integer> entry = it.next();
String key = entry.getKey();
Integer value = entry.getValue();
System.out.println(key+" = "+value);
}
System.out.println("============");
for(Map.Entry<String,Integer> entry : set){
String key = entry.getKey();
Integer value = entry.getValue();
System.out.println(key+" = "+value);
}
}
}
Hashtable
package cn.itcast.demo;
import java.util.HashMap;
import java.util.Hashtable;
/*HashTable*/
public class Demo04Hashtable {
public static void main(String[] args) {
HashMap<String,String>map = new HashMap<>();
map.put(null,"a");
map.put("b",null);
map.put(null,null);
System.out.println(map);//{b=null, null=null}
Hashtable<String,String>table = new Hashtable<>();
//table.put(null,"a");//不允空值 空键
}
}
案例
package cn.itcast.demo;
import java.util.HashMap;
import java.util.Scanner;
/*计算一个字符串中每个字符出现次数。*/
public class Demo05MapTest {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("输入字符串");
String str = sc.next();
HashMap<Character,Integer>map =new HashMap<>();
for(char c:str.toCharArray()){
if(map.containsKey(c)){
Integer value = map.get(c);
value++;
map.put(c,value);
}
else{
map.put(c,1);
}
}
for(Character key:map.keySet()){
Integer value = map.get(key);
System.out.println(key+"="+value);
}
}
}