5.1 Map的概述和使用

package demo11Map;import java.util.HashMap;
import java.util.Map;public class Demo01Map {public static void main(String[] args) {Map<String,String> map=new HashMap<String,String>();map.put("021540630","单宏远");map.put("021540631","张广浩");map.put("021540632","马硕");System.out.println(map);}
}

5.2 Map的基本使用操作

package demo11Map;import java.util.HashMap;
import java.util.Map;public class Demo01Map {public static void main(String[] args) {Map<String,String> map=new HashMap<String,String>();map.put("021540630","单宏远");map.put("021540631","张广浩");map.put("021540632","马硕");//根据键值删除元素System.out.println(map.remove("021540630"));//看是否包含键值System.out.println(map.containsKey("021540631"));//true//看是否包含元素System.out.println(map.containsValue("张广浩"));//true//清空//map.clear();System.out.println(map.isEmpty());System.out.println(map.size());System.out.println(map);}
}
/*
单宏远
true
true
false
2
{021540632=马硕, 021540631=张广浩}*/

5.3 Map集合的获取功能

package demo11Map;import java.util.Collection;
import java.util.HashMap;
import java.util.Map;
import java.util.Set;public class Demo02Get {public static void main(String[] args) {Map<Integer,String> map=new HashMap<>();map.put(001,"杜琪峰");map.put(002,"徐克");map.put(003,"王晶");//根据键值获取元素System.out.println(map.get(001));//set集合储存键值Set<Integer> set=map.keySet();for(Integer i:set){System.out.println(i);}//collection集合储存元素Collection<String> co=map.values();for(String s:co){System.out.println(s);}}
}
/*
杜琪峰
1
2
3
杜琪峰
徐克
王晶*/

5.4 Map的第一种遍历方法

package demo11Map;import java.util.Collection;
import java.util.HashMap;
import java.util.Map;
import java.util.Set;/*
Map集合的遍历(方法1)*/
public class Demo03Map {public static void main(String[] args) {Map<Integer,String> map=new HashMap<>();map.put(001,"杜琪峰");map.put(002,"徐克");map.put(003,"王晶");//keySet得到键值Set<Integer> set=map.keySet();for(Integer i:set){String val = map.get(i);System.out.println(i+","+val);}}
}

5.5 Map的第二种遍历方法

package demo11Map;import java.util.HashMap;
import java.util.Map;
import java.util.Set;/*
使用键值对对象来遍历map*/
public class Demo04Map {public static void main(String[] args) {Map<Integer,String> map=new HashMap<>();map.put(001,"杜琪峰");map.put(002,"徐克");map.put(003,"王晶");Set<Map.Entry<Integer, String>> en = map.entrySet();for(Map.Entry<Integer, String> u:en){Integer key = u.getKey();String value = u.getValue();System.out.println(key+","+value);}}
}
/*
1,杜琪峰
2,徐克
3,王晶*/

5.6 HashMap存储学生对象并遍历

package demo11Map;import java.util.HashMap;
import java.util.Map;
import java.util.Set;public class Demo05Student {public static void main(String[] args) {Map<String,Student> map=new HashMap<>();Student s1=new Student("王麟",33);Student s2=new Student("崔子格",34);Student s3=new Student("周洁琼",23);map.put("singer001",s1);map.put("singer002",s2);map.put("singer003",s3);Set<Map.Entry<String, Student>> set = map.entrySet();//遍历for(Map.Entry<String,Student> s:set){String key = s.getKey();Student value = s.getValue();System.out.println(key+","+value.getName()+","+value.getAge());}}
}
/*
singer001,王麟,33
singer003,周洁琼,23
singer002,崔子格,34*/

5.7 HashMap储存学生类为键值

package demo11Map;import java.util.HashMap;
import java.util.Map;
import java.util.Set;
/*
更改元素要重写Student方法*/
public class Demo06HashMap {public static void main(String[] args) {Map<Student,String> map=new HashMap<>();Student s1=new Student("吴京",38);Student s2=new Student("吴彦祖",42);Student s3=new Student("吴老二",78);Student s4=new Student("吴老二",78);map.put(s1,"北京");map.put(s2,"香港");map.put(s3,"铁岭");map.put(s4,"沈阳");Set<Map.Entry<Student, String>> set = map.entrySet();for(Map.Entry<Student,String> s:set){int age = s.getKey().getAge();String name = s.getKey().getName();String value = s.getValue();System.out.println(age+"的"+name+"住在"+value);}}}/*38的吴京住在北京
42的吴彦祖住在香港
78的吴老二住在沈阳*/

5.8 ArrayList集合存储HashMap元素并遍历

package demo11Map;import java.util.ArrayList;
import java.util.HashMap;
import java.util.Map;
import java.util.Set;/*
ArrayList集合存储HashMap元素并遍历*/
public class Demo07ArrayList {public static void main(String[] args) {ArrayList<Map<String,String>> arr=new ArrayList<>();Map<String,String> m1=new HashMap<>();m1.put("贾乃亮","李小璐");m1.put("王宝强","马蓉");arr.add(m1);Map<String,String> m2=new HashMap<>();m2.put("文章","马伊琍");m2.put("谢霆锋","张柏芝");arr.add(m2);Map<String,String> m3=new HashMap<>();m3.put("刘恺威","杨幂");m3.put("汪峰","章子怡");arr.add(m3);for(Map<String,String> s:arr){Set<String> set = s.keySet();for(String str:set){String s1 = s.get(str);System.out.println(str+","+s1);}}}
}
/*
贾乃亮,李小璐
王宝强,马蓉
文章,马伊琍
谢霆锋,张柏芝
汪峰,章子怡
刘恺威,杨幂*/

5.9 用HashMap遍历ArrayList

package demo11Map;import java.util.ArrayList;
import java.util.HashMap;
import java.util.Set;/*
用HashMap遍历ArrayList*/
public class Demo08HashMap {public static void main(String[] args) {HashMap<String, ArrayList<String>> hm=new HashMap<>();ArrayList<String> sg=new ArrayList<>();sg.add("赵子龙");sg.add("张光北");ArrayList<String> sh=new ArrayList<>();sh.add("西门庆");sh.add("杜淳");ArrayList<String> xy=new ArrayList<>();xy.add("唐三藏");xy.add("迟重瑞");hm.put("三国",sg);hm.put("水浒",sh);hm.put("西游",xy);Set<String> keyset = hm.keySet();for(String s:keyset){ArrayList<String> arr = hm.get(s);for(String ss:arr){System.out.println(ss+"是"+s+"的");}}}
}

5.10 统计输入字符串中字符的种类和个数

package demo11Map;import java.util.HashMap;
import java.util.Scanner;
import java.util.Set;/*
统计字符串中每个字符出现的个数*/
public class Demo09 {public static void main(String[] args) {Scanner sc=new Scanner(System.in);System.out.println("请输入字符串");String str = sc.nextLine();//创建HashMap集合HashMap<Character,Integer> hm=new HashMap<>();//获取每一个字符for (int i = 0; i < str.length(); i++) {char ch = str.charAt(i);Integer value = hm.get(ch);if(hm.get(ch)==null){hm.put(ch,1);}else{value++;hm.put(ch,value);}}//用StringBuilder拼接字符串StringBuilder sb=new StringBuilder();Set<Character> key = hm.keySet();for(Character s:key){Integer value = hm.get(s);sb.append(s).append("(").append(value).append(")");}String result = sb.toString();System.out.println(result);}
}
/*
请输入字符串
wozhanzaicaoyuanwangbeijing
a(5)b(1)c(1)e(1)g(2)h(1)i(3)j(1)n(4)o(2)u(1)w(2)y(1)z(2)*/

5.11 Collections的概述和基本使用

package demo11Map;import java.util.ArrayList;
import java.util.Collections;
import java.util.List;public class Demo10Collections {public static void main(String[] args) {List<Integer> list=new ArrayList<>();list.add(20);list.add(40);list.add(30);list.add(10);list.add(50);//Collections.sort(list);//Collections.reverse(list);Collections.shuffle(list);//随机排序System.out.println(list);}
}

5.12 ArrayList储存学生对象并排序(Collections.sort)

package demoArray;import java.util.*;public class Demo03ArrayList {public static void main(String[] args) {Student s1=new Student("guofucheng",39);Student s2=new Student("liming",39);Student s3=new Student("liudehua",42);Student s4=new Student("zhangxueyou",57);List<Student> list=new ArrayList<>();list.add(s1);list.add(s2);list.add(s3);list.add(s4);Collections.sort(list, new Comparator<Student>() {@Overridepublic int compare(Student s1, Student s2) {int sum=s1.getAge()-s2.getAge();int sum2=sum == 0?s1.getName().compareTo(s2.getName()):sum;return sum2;}});for(Student s:list){System.out.println(s.getAge()+"的"+s.getName()+"帅到喷汁");}}
}

5.13 模拟斗地主

package demoArray;import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;/*
模拟斗地主发牌过程*/
public class Demo04Poker {public static void main(String[] args) {//ArrayList添加PokerString[] huase={"♥","♠","♣","♦"};String[] dianshu={"2","3","4","5","6","7","8","9","10","J","Q","K","A"};ArrayList<String> poker=new ArrayList<>();for(String s1:huase){for(String s2:dianshu){String xiaopai = s1 + s2;poker.add(xiaopai);}}poker.add("小王");poker.add("大王");//洗牌Collections.shuffle(poker);//发牌ArrayList<String> zjhPoker=new ArrayList<>();ArrayList<String> ztaPoker=new ArrayList<>();ArrayList<String> zbzPoker=new ArrayList<>();ArrayList<String> dipai=new ArrayList<>();for(int i=0;i<poker.size();i++){String pai=poker.get(i);if(i>=poker.size()-3){dipai.add(pai);}else if(i%3==0){zjhPoker.add(pai);}else if(i%3==1){ztaPoker.add(pai);}else if(i%3==2){zbzPoker.add(pai);}}//看牌LookPoker("张天爱",ztaPoker);LookPoker("张家辉",zjhPoker);LookPoker("张柏芝",zbzPoker);LookPoker("底牌",dipai);//System.out.println(poker);//System.out.println(ztaPoker);}//看牌public static void LookPoker(String name,ArrayList<String> eachPoker){System.out.print(name+"的牌是:");for(String s:eachPoker){System.out.print(s+" ");}System.out.println();}
}
/*
张天爱的牌是:♦7 ♥A ♠10 ♥4 ♥Q ♥8 ♣7 ♥6 ♣Q ♥5 ♣J ♦A 大王 ♥7 ♦J ♣10 ♣3
张家辉的牌是:♠4 ♠8 ♦5 ♦4 小王 ♠Q ♣6 ♦K ♦8 ♣9 ♣K ♦2 ♠A ♠K ♦6 ♥J ♣2
张柏芝的牌是:♠3 ♣4 ♦9 ♥10 ♠6 ♠7 ♥K ♠5 ♥3 ♥9 ♦10 ♦3 ♥2 ♦Q ♣8 ♠2 ♣A
底牌的牌是:♠9 ♠J ♣5 */

【java笔记】Map,HashMap,Collections相关推荐

  1. Java专题 Map,hashMap 多种遍历方式 总结+统计字符出现次数案例

    描述 Map 与Collection同级 键值对 数据按一对为单位存储 python中的字典 Map ->双列集合的顶层接口 HashMap-> 哈希表存储 没有固定顺序 LinkedHa ...

  2. java笔记--Map的用法

    Map 接口概述 我们通过查看Map接口描述,发现Map接口下的集合与Collection接口下的集合,它们存储数据的形式不同,如下图. Collection中的集合,元素是孤立存在的(理解为单身), ...

  3. java map套arraylist,在Java中的HashMap和ArrayList的区别?

    In Java, ArrayList and HashMap are used as collections. But I couldn't understand in which situation ...

  4. java获取map大小_java – 从HashMap获取最大Set大小

    我有一个< Integer,Set< Integer>>的hashMap. 我愿意使用java流操作获取具有最大大小的Set. 这是我的例子: public class Exa ...

  5. java温故笔记(二)java的数组HashMap、ConcurrentHashMap、ArrayList、LinkedList

    为什么80%的码农都做不了架构师?>>>    HashMap 摘要 HashMap是Java程序员使用频率最高的用于映射(键值对)处理的数据类型.随着JDK(Java Develo ...

  6. Java笔记07-List、Set、数据结构、Collections

    Java笔记07-List.Set.数据结构.Collections 主要内容 数据结构 List集合 Set集合 Collections 第一章 数据结构 2.1 数据结构有什么用? 当你用着jav ...

  7. java基础-Map集合、Collections集合、斗地主案例

    1.Map集合 1.1Map集合概述和特点 Map集合概述 interface Map<K,V> K:键的类型:V:值的类型 Map集合的特点 (1)键值对映射关系 (2)一个键对应一个值 ...

  8. Java中Map集合类的用法(HashMap)

    Map键值对,键(key)一般存储索引,值(value)一般存储对象. Map的特性即「键-值」(Key-Value)匹配 java.util.HashMap HashMap在内部使用哈希(Hash) ...

  9. Java工作笔记-Map的基本用法

    这段话是博客园一大神的,摘录下来: (01) Map 是"键值对"映射的抽象接口. (02) AbstractMap 实现了Map中的绝大部分函数接口.它减少了"Map的 ...

最新文章

  1. “智源论坛Live”报名 | 清华大学高天宇:实体关系抽取的现状和未来
  2. 5G NGC — 关键技术 — R16 eSBA
  3. log4.properties文件【笔记自用】
  4. Spring MVC 中 HandlerInterceptorAdapter的使用--转载
  5. solr安装笔记与定时器任务
  6. std::list 修改某个值_在WordPress首页不显示某个分类文章的做法
  7. pythonint切片_python-切片
  8. Java对象内存图二
  9. 重学java基础第七课:什么是计算机
  10. python 进程池不足_python 进程池pool简单使用
  11. Mac不装软件校验MD5和SHA1值
  12. 【Python CheckiO 题解】All the Same
  13. python中setup函数的用法_python学习之setUp函数和tearDown函数
  14. Codeforces Round #198 (Div. 2)A,B题解
  15. plsql查询不显示结果_管理NVivo的查询结果
  16. 2021-11-02 Kafka、Zookeeper的下载、打开、关闭
  17. 【转载】《周一清晨的领导课》读书笔记!!!
  18. 全球与中国制冷压缩机润滑油市场深度研究分析报告
  19. VMware设置虚拟机连接内外网
  20. insmod与modprobe命令的区别及其相关命令

热门文章

  1. hasp运行不成功_HASP加密锁错误代码原因
  2. 内网穿透远程群晖NAS:免费安装cpolar内网穿透 1/6
  3. 选择护肤品时应该注意的功效成分!
  4. XenApp 7.6:如何启用客户端IME,启用客户端输入法
  5. oracle prompt出错,Oracle 用 sqlprompt 修改 sqlplus 提示符
  6. 模拟电子技术实验作业(9)
  7. 精美企业官网小程序源码,自带十几款模板适合各个行业 如保险 装修 服装 母婴 教育 旅游 婚庆 幼儿园等
  8. 用Ventoy制作多系统启动盘(带你快速了解)
  9. U盘病毒Global.exe专杀
  10. tomcat jdbc连接池配置属性详解之参数说明