public class MapDemo01 {
public static void main(String[] args) {
Map<String ,String> map=new HashMap<String,String>();
//V put (K key, V value) 将指定的值与该映射中的指定键相关联
map.put("itheima001","林青霞");
map.put("itheima002","张曼玉");
map.put("itheima002","柳岩");
System.out.println(map);
}
}
执行结果:
{itheima001=林青霞, itheima002=柳岩}
由此可见,如果key值相同的话,后面的是会覆盖掉前面的键。原因是hashMap作为底层的数据结构。
public class MapDemo03 {
public static void main(String[] args) {
Map<String, String> map = new HashMap<String, String>();
map.put("张无忌", "赵敏");
map.put("郭靖", "黄蓉");
map.put("杨过", "小龙女");
//获取所有键的集合。用keySet()方法实现
Set<String> keySet=map.keySet();
for (String k:keySet){
//根据键去找值。用get(0bject key)方法实现
String value=map.get(k);
System.out.println(k+","+value);
}
}
}
执行结果:
杨过,小龙女
郭靖,黄蓉
张无忌,赵敏
public static void main(String[] args) {
Map<String, String> map = new HashMap<String, String>();
map.put("张无忌", "赵敏");
map.put("郭靖", "黄蓉");
map.put("杨过", "小龙女");
//获取所有键值对对象的集合
Set<Map.Entry<String, String>> entrySet = map.entrySet();
//遍历键值对对象的集合,得到每一一个键值对对象
for (Map.Entry<String, String> me : entrySet) {
//根据键值对对象获取键和值
String key = me.getKey();
String value = me.getValue();
System.out.println(key + "," + value);
}
}
执行结果;
杨过,小龙女
郭靖,黄蓉
张无忌,赵敏
package Map;
import java.util.*;
public class HashMapDemo01 {
public static void main(String[] args) {
//创建arraylist集合
ArrayList<HashMap<String,String>> array=new ArrayList<HashMap<String,String>>();
//创建hashmap集合,并添加键值对元素
HashMap<String,String> hm1=new HashMap<String,String>();
hm1.put("孙策","大乔");
hm1.put("周瑜","小乔");
//将hashmap作为元素添加到arraylist中
array.add(hm1);
//创建hashmap集合,并添加键值对元素
HashMap<String,String> hm2=new HashMap<String,String>();
hm2.put("郭靖","黄蓉");
hm2.put("杨过","小龙女");
//将hashmap作为元素添加到arraylist中
array.add(hm2);
//创建hashmap集合,并添加键值对元素
HashMap<String,String> hm3=new HashMap<String,String>();
hm3.put("令狐冲","任盈盈");
hm3.put("林平之","岳灵珊");
//将hashmap作为元素添加到arraylist中
array.add(hm3);
System.out.println(array);
//遍历arraylist集合
for(HashMap<String,String> hm:array){
// ①通过获取键key来获取值value,然后一起打印出来
// Set<String> keyset=hm.keySet();
// for (String key:keyset){
// String value=hm.get(key);
// System.out.println(key+","+value);
// }
// System.out.println("---------");
//②通过获取所有键值对对象的集合来获取键key和value
Set<Map.Entry<String, String>> entrySet = hm.entrySet();
for (Map.Entry<String, String> me:entrySet){
String key=me.getKey();
String value=me.getValue();
System.out.println(key+","+value);
}
}
}
}
执行结果:
[{孙策=大乔, 周瑜=小乔}, {杨过=小龙女, 郭靖=黄蓉}, {令狐冲=任盈盈, 林平之=岳灵珊}]
孙策,大乔
周瑜,小乔
杨过,小龙女
郭靖,黄蓉
令狐冲,任盈盈
林平之,岳灵珊
package Map;
import java.util.*;
public class HashMapDemo02 {
public static void main(String[] args) {
//创建hashmap集合
HashMap<String,ArrayList<String>> hm=new HashMap<String,ArrayList<String>>();
//创建ArrayList集合
ArrayList<String> sgyy=new ArrayList<String>();
sgyy.add("诸葛亮");
sgyy.add("赵云");
//添加ArrayList到hashMap中
hm.put("三国演义",sgyy);
//创建ArrayList集合
ArrayList<String> xyj=new ArrayList<String>();
xyj.add("唐僧");
xyj.add("孙悟空");
//添加ArrayList到hashMap中
hm.put("西游记",xyj);
//创建ArrayList集合
ArrayList<String> shz=new ArrayList<String>();
shz.add("武松");
shz.add("鲁智深");
//添加ArrayList到hashMap中
hm.put("水浒传",shz);
System.out.println(hm);
Set<String> keyset=hm.keySet();
Collection<ArrayList<String>> values=hm.values();
for (String k:keyset){
// for (ArrayList<String> a:values){
// System.out.println(k+","+ a.get(0)+","+a.get(1));
// }
ArrayList<String> value=hm.get(k);
System.out.println(k);
for (String a:value){
System.out.println("\t"+a);
}
}
}
}
执行结果:
{水浒传=[武松, 鲁智深], 三国演义=[诸葛亮, 赵云], 西游记=[唐僧, 孙悟空]}
水浒传
武松
鲁智深
三国演义
诸葛亮
赵云
西游记
唐僧
孙悟空
package Map;
import java.util.HashMap;
import java.util.Scanner;
import java.util.Set;
import java.util.TreeMap;
public class HashMapDemo03 {
public static void main(String[] args) {
//从键盘录入一个数
Scanner sc=new Scanner(System.in);
System.out.println("请输入一个字符");
String line=sc.nextLine();
//创建hashmap集合
TreeMap<Character,Integer> hm=new TreeMap<Character,Integer>();
//使用TreeMap进行排序,按照字母顺序abcdef......
//遍历字符串,得到每个字符
for (int i =0;i<line.length();i++){
char key = line.charAt(i);
//拿每个得到的字符去hashmap找对应的值,看其返回值
Integer value=hm.get(key);
if (value==null){
hm.put(key,1);
}else{
value++;
hm.put(key,value);
}
}
//遍历hashmap集合,得到键和值,并且按照要去进行拼接
StringBuilder sb=new StringBuilder();
Set<Character> keyset = hm.keySet();
for (Character key:keyset){
Integer value=hm.get(key);
sb.append(key).append("(").append(value).append(")");
}
String s=sb.toString();
System.out.println(s);
}
}